minor doc
							parent
							
								
									001641dfb9
								
							
						
					
					
						commit
						908248905a
					
				
							
								
								
									
										27
									
								
								sins/run.py
								
								
								
								
							
							
						
						
									
										27
									
								
								sins/run.py
								
								
								
								
							| 
						 | 
					@ -6,10 +6,26 @@ from random import randint
 | 
				
			||||||
import binascii
 | 
					import binascii
 | 
				
			||||||
import ctypes
 | 
					import ctypes
 | 
				
			||||||
import logging
 | 
					import logging
 | 
				
			||||||
import subprocess
 | 
					 | 
				
			||||||
import mmap
 | 
					import mmap
 | 
				
			||||||
 | 
					
 | 
				
			||||||
seed_shell = b'\x55\x90\x48\x89\xe5\x90\x48\x89\x7d\xf8\x90\x48\x8b\x45\xf8\x90\x5d\x90\xc3'
 | 
					template_shell = b''.join([
 | 
				
			||||||
 | 
					    b'\x55',              # push   rbp
 | 
				
			||||||
 | 
					    b'\x48\x89\xe5',      # mov    rbp,rsp
 | 
				
			||||||
 | 
					    b'\x48\x89\x7d\xf8',  # mov    QWORD [rbp-0x8],rdi
 | 
				
			||||||
 | 
					    b'\x48\x8b\x45\xf8',  # mov    rax,QWORD [rbp-0x8]
 | 
				
			||||||
 | 
					    b'\x5d',              # pop    rbp
 | 
				
			||||||
 | 
					    b'\xc3'])             # ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					seed_shell = b''.join([
 | 
				
			||||||
 | 
					    b'\x55',
 | 
				
			||||||
 | 
					    b'\x48\x89\xe5',
 | 
				
			||||||
 | 
					    b'\x90' * randint(8, 64),
 | 
				
			||||||
 | 
					    b'\x48\x89\x7d\xf8',
 | 
				
			||||||
 | 
					    b'\x90' * randint(8, 64),
 | 
				
			||||||
 | 
					    b'\x48\x8b\x45\xf8',
 | 
				
			||||||
 | 
					    b'\x5d',
 | 
				
			||||||
 | 
					    b'\xc3'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def shell_func(shellcode: bytes):
 | 
					def shell_func(shellcode: bytes):
 | 
				
			||||||
    prot = mmap.PROT_READ | mmap.PROT_WRITE | mmap.PROT_EXEC
 | 
					    prot = mmap.PROT_READ | mmap.PROT_WRITE | mmap.PROT_EXEC
 | 
				
			||||||
| 
						 | 
					@ -68,10 +84,11 @@ def sins():
 | 
				
			||||||
        with seed.open('rb') as seed_file:
 | 
					        with seed.open('rb') as seed_file:
 | 
				
			||||||
            seed_data = seed_file.read()
 | 
					            seed_data = seed_file.read()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    logger.info(f'seed_data\n{seed_data}')
 | 
					    seed_len = ctypes.c_uint(len(seed_data))
 | 
				
			||||||
    logger.info(f'seed_len: {len(seed_data)}')
 | 
					    logger.info(f'seed_data\n{binascii.b2a_hex(seed_data)}')
 | 
				
			||||||
 | 
					    logger.info(f'seed_len: {seed_len}')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    seed = shell_func(seed_shell)
 | 
					    seed = shell_func(seed_shell)
 | 
				
			||||||
    ret_val = seed(ctypes.c_uint(len(seed_data)))
 | 
					    ret_val = seed(seed_len)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    logger.info(f'ret_val:  {ret_val}')
 | 
					    logger.info(f'ret_val:  {ret_val}')
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue