Create customized captcha field to wordpress comment form without Plugin

Check out the default comment-template.php file:
wp-includes/comment-template.php

You will need to replace the arguments:

$defaults = array(
    'fields'               => apply_filters( 'comment_form_default_fields', $fields ),
    'comment_field'        => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>',
    'must_log_in'          => '<p class="must-log-in">' .  sprintf( __( 'You must be <a href="https://wordpress.stackexchange.com/questions/174775/%s">logged in</a> to post a comment.' ), wp_login_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
    'logged_in_as'         => '<p class="logged-in-as">' . sprintf( __( 'Logged in as <a href="%1$s">%2$s</a>. <a href="%3$s" title="Log out of this account">Log out?</a>' ), admin_url( 'profile.php' ), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
    'comment_notes_before' => '<p class="comment-notes">' . __( 'Your email address will not be published.' ) . ( $req ? $required_text : '' ) . '</p>',
    'comment_notes_after'  => '<p class="form-allowed-tags">' . sprintf( __( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: %s' ), ' <code>' . allowed_tags() . '</code>' ) . '</p>',
    'id_form'              => 'commentform',
    'id_submit'            => 'submit',
    'title_reply'          => __( 'Leave a Reply' ),
    'title_reply_to'       => __( 'Leave a Reply to %s' ),
    'cancel_reply_link'    => __( 'Cancel reply' ),
    'label_submit'         => __( 'Post Comment' ),
);

Override the part of the form where you want to insert your required item. For example, I use the after_notes section as follows normally:

$defaults['comment_notes_after'] .= '<div>Your Code Here</div>';

You can then call comment form like:

comment_form( $defaults );

That should draw your extra section into the comment form.

The simplest way to do this would be to add your content to the comment_notes_after argument on the comment form.

For example:

$comment_fields = array(
   'comment_notes_after' => '<p class="form-allowed-tags">' . sprintf( __( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: %s' ), ' <code>' . allowed_tags() . '</code>' ) . '</p><p>Enter Code:<input name="security" value="" /></p>';
);
apply_filters( 'comment_form_default_fields', $comment_fields );

That should add <p>Enter Code: <input name="security" value="" /></p> after the allowed fields section of the comment form.

It needs the first part as that is what is in the comment_notes_after field by default.